根据这篇文章:http://roadfiresoftware.com/2014/07/swift-strings-arent-objects/ 字符串不是swift中的对象。因此我们不能将“AnyObject”用于字符串,我们应该使用“Any”类型。
但是当我将字符串分配给AnyObject时,它正在工作。
例如:
let str:String = "myString"
let things: [AnyObject] = ["hello",str, 3]
for item in things
{
println(item)
}
输出:
hello
myString
3
我缺少什么?
答案 0 :(得分:3)
正确的说法是String
是值类型而不是引用类型。但是,为了保持与现有API的兼容性,Swift在Swift的String
和基金会NSString
之间提供了隐式和自动桥接,这是一种参考类型。
因此,当快速字符串转换为AnyObject
时,它会自动桥接到NSString
。
请注意,swift数组,字典和数字类型也有桥接对应物(分别为NSArray
,NSDictionary
和NSNumber
)