Array支持任何类型的值

时间:2015-08-14 09:43:20

标签: ios objective-c swift nsarray

根据swift doc - “数组在有序列表中存储相同类型的值。”

摘自:Apple Inc.“The Swift Programming Language。”iBooks。 https://itun.es/in/jEUH0.l

var justBlankArray = []
var a:Int = 4
var b:Dictionary = ["Address":"Silver Oaks"]
justBlankArray = ["Tush",a,b] 
println(justBlankArray[0].classForCoder)
println(justBlankArray[1].classForCoder)
println(justBlankArray[2].classForCoder)

输出 -

  

的NSString
      的NSNumber
      NSDictionary

谁能告诉我发生了什么事?它们在阵列中的类型不同吗?

3 个答案:

答案 0 :(得分:0)

创建的justBlankArrayNSArray - 类型,不是Swift类型Array。如果要在Swift类型Array中存储任何类型的对象,可以这样做:

var justBlankArray : [AnyObject] = []

它创建一个可以容纳任何类型对象的数组。即使是C结构,NSArray也不能。

答案 1 :(得分:0)

创建数组时:

var justBlankArray = []

类型为NSArray,NSArray可以保存异构数据。 (意味着它可以容纳任何物体)

如果使用以下方式打印justBlankArray的课程

println(justBlankArray.classForCoder)

结果会给你NSArray

答案 2 :(得分:0)

如果没有为数组文字指定类型,则推断为NSArrayNSArray可以包含任何类型的类对象(AnyObject)。

enter image description here