我无法理解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
所以一个数组毕竟不是一个结构吗?
答案 0 :(得分:8)
默认情况下,Swift bridge
Int
(和朋友)到NSNumber
String
至NSString
Dictionary
至NSDictionary
所以如果需要
,编译器会将它们更改为object你可以做到
var num : AnyObject = 1 // I think num is now NSNumber
var arr : AnyObject = [1,2,3] // I think arr is now NSArray of @[@1,@2,@3]
并且您无法将sturct
/ enum
分配给AnyObject
,因为它们不是对象类型(您可以使用Any
来保存它们)