我最近遇到了以下代码:

struct Bar: Identifiable {
    // Type 'Bar' does not conform to protocol 'Identifiable'
}

class Foo: Identifiable {
   
}

对于Bar struct ,Xcode抱怨"Type"Bar不符合协议"identification",但对于Foo Xcode,从不抱怨.

我的理解是,Bar是一种值类型,我们需要为id属性提供一个值,以符合可识别的.

Foo是引用类型,因此其内存地址是唯一的,因此不需要通过可识别的方式包含id一致性.

这是正确的吗?

推荐答案

不完全是这样,Identifiable有一个显式扩展,这使得类可以:

demo demo1

Swift相关问答推荐

try 在SwiftUI中做5星评级

SwiftUI map 旋转

在NavigationStack上设置拐角半径:SwiftUI中的无响应内容视图区

为什么我的 tableView 没有推送到 tableView 内的 detailViewController?

为什么 SwiftUI 中 ForEach 的这个 Select 不起作用?

当使用 CGFloat 而不是数字文字时,为什么 node 的位置会发生变化?

Swift - 给定一个像 30 的 Int 如何将范围数乘以 7?

使 Picker 与其他 BinaryInteger 类型兼容

将内容与工作表顶部而不是中间对齐

为什么 Apple Scrumdinger Sample App 使用两个事实来源?

SwiftUI View Builder 参数无法更改状态

来自数据的 SwiftUI 图像

SwiftUI:调用以编程方式创建的视图的函数

如何仅将 SwiftUI 不透明度应用于父视图?

Swift 中的 PageViewController 当前页面索引

如何在 Swift 中将 UILabel 居中?

在 Swift 中,你可以用另一个字符串分割一个字符串,而不仅仅是一个字符吗?

无法停止 AVPlayer

Alamofire:如何全局处理错误

在 Swift 中从服务器播放视频文件