gpt4 book ai didi

字符串不是对象

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:48 24 4
gpt4 key购买 nike

根据这篇文章: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

我错过了什么?

最佳答案

String 是值类型而不是引用类型是正确的。然而,为了保持与现有 API 的兼容性,Swift 在 Swift 的 String 和 Foundation 的 NSString 之间提供了隐式和自动桥接,这是一种引用类型。

因此,当一个 swift 字符串被转换为 AnyObject 时,它会自动桥接到 NSString

请注意,swift 数组、字典和数字类型也有桥接对应物(分别为 NSArrayNSDictionaryNSNumber)

关于字符串不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28076403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com