swift - 为 AnyObject 类型转换以表示任何引用类型的实例

标签 swift anyobject

<分区>

 var array = [AnyObject]()
 struct Test {}
 array.append(Test())

当我在 Playground 上写这段代码时,出现以下错误Type 'Test' does not conform to protocol 'AnyObject'

我猜它失败了,因为 struct 是值类型而不是引用类型。 但是当我运行这段代码时

var array = [AnyObject]()
array.append(1)
array.append(2.0)
array.append("3")

有效 但这些都是值类型,但在这种情况下没有给出错误 Why?

最佳答案

对于您的成功案例,幕后正在进行一些转换。

尝试在你的追加的末尾添加这个,看看发生了什么:

for item in array {
    print(item.dynamicType)
}

关于swift - 为 AnyObject 类型转换以表示任何引用类型的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37546347/

相关文章:

ios - 如何在 JSON Alamofire 请求的函数中返回正确的值?

ios - NSLayoutAttribute topMargin 和 BottomMargin (边距约束)在 iOS 编程布局中不起作用

ios - 我什么时候应该在 swift 中使用 anyObject insted of UIButton?

ios - 如何将 [CustomClass] 转换为 [AnyObject]

ios - 在 Swift 2 中过滤任何对象

swift - 什么是 swift 3 中 NSTimer.scheduledTimerWithTimeInterval() 的替换?

swift - 你怎么能在swift中将一个数字 append 到一个double

ios - Xcode 12 - 当有另一个 Swift 包作为依赖项时,SwiftUI 预览在 Swift 包上不起作用 - 'previewInstances' 给代理的消息

swift - AnyObject如何遵守NSObjectProtocol?