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
> <[email protected]> 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 <[email protected]
>> <mailto:[email protected]>> 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
>> <[email protected] <mailto:[email protected]>> 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
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users