考慮代碼:爲什麼Swift Array <Int>與AnyObject兼容?
struct S {
var f : Int64 = 0
}
...
let coder : NSCoder = someCoder ...
let a : [Int] = []
coder.encodeObject(a) // compiles
let b : [Int64] = []
coder.encodeObject(b) // doesn't compile: not AnyObject
let s : [S] = []
coder.encodeObject(s) // doesn't compile: not AnyObject
注意Int
被定義爲struct
。
所以[Int]
是對象,但[Int64]
不是,也不是我的簡單結構數組。
Int
的特別之處是什麼?
只是爲了保持完整性,還有什麼其他種類型,其中在陣列中使用時,都將通過橋的NSArray? – rghome
符合'_ObjectiveCBridgeable'的任何內容。點擊'Foundation'進入'Foundation'界面,然後搜索'_ObjectiveCBridgeable'。 –
有關文檔,請參閱https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/WorkingWithCocoaDataTypes.html#//apple_ref/doc/uid/TP40014216-CH6-ID61。 –