为 AnyObject 类型转换以表示任何引用类型的实例

Type Casting For AnyObject to represent instances of any reference type

 var array = [AnyObject]()
 struct Test {}
 array.append(Test())

当我在操场上写这段代码时,出现以下错误 Type 'Test' does not conform to protocol 'AnyObject'

我猜它失败了,因为 struct 是值类型而不是引用类型。 但是当我 运行 这个代码

var array = [AnyObject]()
array.append(1)
array.append(2.0)
array.append("3")

有效 但这些也是值类型,但在这种情况下没有给出错误 Why?

对于您的成功案例,幕后正在进行一些转换。

尝试在追加的末尾添加这个,看看发生了什么:

for item in array {
    print(item.dynamicType)
}