我无法理解AnyObject的局限性.
您可以从标题中看到Array是一个结构体.不过,这段代码有效:
var whatobject : AnyObject whatobject = [1,2]
而且它不仅仅是文字数组:
var whatobject : AnyObject let arr = [1,2,3] whatobject = arr
但是,我无法为whatobject分配一个结构:
struct S {} var whatobject : AnyObject whatobject = S() // error
那么数组毕竟不是一个真正的结构?
解决方法
当桥接进来时,这是有趣的部分……
默认情况下,Swift桥
> Int(和朋友)到NSNumber
> String to NSString
>字典到NSDictionary
所以如果需要,编译器会将它们更改为对象
你可以做到
var num : AnyObject = 1 // I think num is now NSNumber var arr : AnyObject = [1,3] // I think arr is now NSArray of @[@1,@2,@3]
并且您不能将sturct / enum分配给AnyObject,因为它们不是对象类型(您可以使用Any来保存它们)