gpt4 book ai didi

swift - 为什么 `var one: AnyObject = [AnyObject]()` 有效?

转载 作者:可可西里 更新时间:2023-11-01 00:58:53 27 4
gpt4 key购买 nike

我很难理解为什么 AnyObject 的实例等于 Anyobject 的数组,即为什么这个语句 var one: AnyObject = [AnyObject ]() 有效吗?

最佳答案

用这段代码

var one: AnyObject = [AnyObject]()

您不是在比较 2 个值。

您只是将 [AnyObject] 数组分配给 AnyObject 类型的变量。

由于 Swift 数组被桥接到 NSArray(这是一个对象),因此编译器如果可以使用此代码。

类似例子

在下面的代码中,我们声明了一个 AnyObject 类型的变量,并将一个 int 放入其中。由于 Int si 再次桥接到 NSNumber(这是一个对象),因此编译器非常好

var one: AnyObject = 1

更多例子

var word: AnyObject = "hello"
var condition: AnyObject = true

阻塞到 NSArray 的桥接

如果您从 Playground 中删除 import Foundation 行,那么到 NSArray 的桥接就会中断。

现在作为结构的 swift Array 不再被认为是有效的 AnyObject(结构不是对象)并且你会得到一个编译错误。

enter image description here

关于swift - 为什么 `var one: AnyObject = [AnyObject]()` 有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38862424/

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