首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么` `var one: AnyObject = [AnyObject]()`有效?

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

Stack Overflow用户
提问于 2016-08-10 08:26:35
回答 1查看 74关注 0票数 2

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 08:31:29

使用下面的代码

代码语言:javascript
复制
var one: AnyObject = [AnyObject]()

您不是在比较两个值。

您只是将一个[AnyObject]数组赋值给一个AnyObject类型的变量。

因为Swift数组被桥接到NSArray (它是一个对象),所以编译器可以使用这段代码。

类似的例子

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

代码语言:javascript
复制
var one: AnyObject = 1

更多示例

代码语言:javascript
复制
var word: AnyObject = "hello"
var condition: AnyObject = true

阻止通向NSArray的桥

如果您从操场中删除import Foundation线路,则连接到NSArray的桥将中断。

现在,作为结构的swift数组不再被视为有效的AnyObject (结构不是对象),并且会出现编译错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38862424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档