小编int*_*upt的帖子

Swift 中的可识别协议:类与结构

我正在使用 Swift 5.3

试图理解为什么当我声明这个结构时

final class MyActivity: Identifiable {
    public let iHaveNoId: String = ""
}
Run Code Online (Sandbox Code Playgroud)

它编译时没有任何错误(即使我没有实现“id”字段),而对于 struct

struct MyActivity: Identifiable {
    public let iHaveNoId: String = ""
}
Run Code Online (Sandbox Code Playgroud)

我收到错误(如预期) -类型“MyActivity”不符合协议“可识别”

此外,如果我复制可识别源代码并将其重命名为我自己的名字,例如

public protocol MyIdentifiable {
    associatedtype ID : Hashable
    var id: Self.ID { get }
}
Run Code Online (Sandbox Code Playgroud)

那么实现 MyIdentific 协议的结构和类都将失败,并出现正确的错误类型“MyActivity”不符合协议“MytIdentABLE”

我很困惑。

swift identifiable

3
推荐指数
1
解决办法
6077
查看次数

标签 统计

identifiable ×1

swift ×1