For reasons, I'm still using Xcode 7 and Swift 2.2

 Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)

Doug Hill


> On Jan 25, 2017, at 5:13 PM, Zhao Xin <owe...@gmail.com> wrote:
> 
> Can you check the version of you Swift? Your code works in Xcode 8.2.1 
> (8C1002), Swift 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
> 
> Zhaoxin
> 
> On Thu, Jan 26, 2017 at 2:49 AM, Doug Hill <swiftus...@breaqz.com 
> <mailto:swiftus...@breaqz.com>> wrote:
> OK, I just tried testing this code in my app and a Swift playground. I also 
> tried a variation on the initializer just for the heck of it. I get the 
> following error:
> 
> class Test<T>
> {
>     var array:[T] = []
>     var array2 = [T]()
> 
>     init() {
>         var temp  = self.array as NSArray
>         var temp2 = self.array2 as NSArray
>     }
> }
> 
> error: cannot convert value of type '[T]' to type 'NSArray' in coercion
>                 var temp = self.array as NSArray
>                            ~~~~~^
> error: cannot convert value of type '[T]' to type 'NSArray' in coercion
>                 var temp2 = self.array2 as NSArray
>                             ~~~~~^
> 
> Are there restrictions on what can be converted to NSArray?
> 
> Doug Hill
> 
>> On Jan 25, 2017, at 9:24 AM, Doug Hill via swift-users 
>> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
>> 
>> Thanks for the help. I'm still trying to figure out how Swift works, 
>> particularly what the error messages mean. This has been driving me a little 
>> nuts trying to figure out what is wrong via sometimes cryptic errors. Also, 
>> it seems like getting generic programming working in Swift is more difficult 
>> than I'm used to (even than C++!) so this answer helps figure out how the 
>> compiler works.
>> 
>> Doug Hill
>> 
>> 
>>> On Jan 23, 2017, at 7:04 PM, Zhao Xin <owe...@gmail.com 
>>> <mailto:owe...@gmail.com>> wrote:
>>> 
>>> It seems to me that you didn't initialize your `myArray` before you casted 
>>> it. That caused the problem.
>>> 
>>> Zhaoxin
>>> 
>>> On Tue, Jan 24, 2017 at 9:34 AM, Jon Shier via swift-users 
>>> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
>>> enumerateObjects(options:using:) exists on NSArray in Swift. And I was able 
>>> to create your generic class just fine:
>>> 
>>> class Test<T> {
>>>     var array: [T] = []
>>>     
>>>     init() {
>>>         var temp = array as NSArray
>>>     }
>>> }
>>> 
> 
> 

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to