我很难理解为什么AnyObject的实例等于Anyobject的数组,也就是为什么这个语句var one: AnyObject = [AnyObject]()是有效的?
发布于 2016-08-10 08:31:29
使用下面的代码
var one: AnyObject = [AnyObject]()您不是在比较两个值。
您只是将一个[AnyObject]数组赋值给一个AnyObject类型的变量。
因为Swift数组被桥接到NSArray (它是一个对象),所以编译器可以使用这段代码。
类似的例子
在下面的代码中,我们声明了一个AnyObject类型的变量,并将一个整数放入其中。由于Int再次桥接到NSNumber (这是一个对象),所以它编译得非常好
var one: AnyObject = 1更多示例
var word: AnyObject = "hello"
var condition: AnyObject = true阻止通向NSArray的桥
如果您从操场中删除import Foundation线路,则连接到NSArray的桥将中断。
现在,作为结构的swift数组不再被视为有效的AnyObject (结构不是对象),并且会出现编译错误。

https://stackoverflow.com/questions/38862424
复制相似问题