SwiftUI 基础之 Identifiable

Identifiable 在apple文档中解释的比较晦涩:

//A class of types whose instances hold the value of an entity with stable identity.
一类类型,其实例持有具有稳定标识的实体的值.

public protocol Identifiable {
    associatedtype ID : Hashable
    var id: Self.ID { get }
}

其实Identifiable 非常简单实用,主要作用就是作为一个对象的唯一标识。

来个demo

一个 Expense类

struct ExpenseItem {
    let id:  UUID()
    let name: String
    let type: String
    let amount: Int
}

我们遍历他,需要一个唯一标识

ForEach(expenses.items, id: \.id) { item in
    Text(item.name)
}

我们实用Identifiable就不用这么麻烦了

struct ExpenseItem: Identifiable {
    let id = UUID()
    let name: String
    let type: String
    let amount: Int
}
ForEach(expenses.items) { item in
    Text(item.name)
}

参考:Working with Identifiable items in SwiftUI

你可能感兴趣的:(SwiftUI 基础之 Identifiable)