我很难理解为什么一个实例AnyObject
等于一个数组Anyobject
,即为什么这个语句var one: AnyObject = [AnyObject]()
是有效的?
问问题
74 次
1 回答
3
使用此代码
var one: AnyObject = [AnyObject]()
您不是在比较 2 个值。
您只是将数组分配给[AnyObject]
type 的变量AnyObject
。
由于 Swift 数组已桥接到NSArray
(这是一个对象),因此编译器是否可以使用此代码。
类似的例子
在下面的代码中,我们声明了一个 AnyObject 类型的变量,并将一个 int 放入其中。由于 Int si 再次桥接到 NSNumber (这是一个对象),它编译器非常好
var one: AnyObject = 1
更多示例
var word: AnyObject = "hello"
var condition: AnyObject = true
阻塞到 NSArray 的桥
如果您import Foundation
从 Playground 中移除线路,则连接的桥将NSArray
被中断。
现在,作为结构的 swift Array 不再被视为有效AnyObject
(结构不是对象),并且您会收到编译错误。
于 2016-08-10T00:31:28.817 回答