繁体   English   中英

“Type'Program'不符合'任何对象'协议”

[英]“Type'Program' does not conform to protocol 'Any Object'”

我更新了xcode,现在我的项目出错,我不知道如何处理它。

struct Program {
    let name : String
    let url : String
}

self.arrayOfPrograms = [Program(name: "First", url: "http://1.com"), Program(name: "Second", url: "http://2.com"), Program(name: "Third", url: "http://2.com")]

我收到错误“Type'Program'不符合协议'任何对象'”

文档中所述:

AnyObject可以表示任何类类型的实例。

struct不是类,因此无法AnyObjectAnyObject

你应该:

  • Program变成一个类
  • 将数组定义为Array<Any>
  • 如果您的数组应该只保存Program实例,请将其声明为Array<Program>

不用说,最后一个是最好的解决方案,而第一个是我不推荐的解决方案,因为它需要你进行设计更改(这就是为什么你将它声明为值类型而不是引用类型的原因)。

旁注:数组和字典可以转换为AnyObject因为它们分别自动桥接到NSArrayNSDictionary ,它们是类。

检查这个链接你得到了你的answare我最近把我的脑袋包裹在Swift中我发现很奇怪的东西。 Swift提供了两个名为Any和AnyObject的高级协议。 任何可以用于值类型(如结构)和引用类型(类),而AnyObject只能用于类。

在此输入链接描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM