【问题标题】:"Type'Program' does not conform to protocol 'Any Object'"“类型‘程序’不符合协议‘任何对象’”
【发布时间】:2014-12-19 06:35:32
【问题描述】:

我更新了 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")]

我收到错误“类型'程序'不符合协议'任何对象'”

【问题讨论】:

    标签: ios arrays xcode swift tableview


    【解决方案1】:

    documentation报道的:

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

    结构不是类,因此不能转换为AnyObject

    您应该:

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

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

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

    【讨论】:

      【解决方案2】:

      检查这个链接你得到了你的答案我最近绕了我的头 我在 Swift 中发现了一些很奇怪的东西。 Swift 提供了两个 称为 Any 和 AnyObject 的高级协议。任何可以用于 值类型(如结构)和引用类型(类)同时 AnyObject 只能用于类。

      enter link description here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-06
        • 2017-06-22
        • 2019-11-23
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多