所以我试图像这样在SwiftUI中创建一个列表:
struct DetailsView: View {
var piis = [IDPiece]()
var body: some View {
List(piis, id: \.identifier) { pii in
Text( pii.label )
}
}
}
IDPiece
如下:
struct IDPiece: Equatable {
init() {}
init(claim: Claim) {
self.document = claim.document
self.identifier = claim.identifier
self.claimUID = claim.claimUID
self.label = claim.label
}
var document: DocumentType = .na
var identifier: String = ""
var claimUID: String = ""
var label: String?
}
但是我在初始化列表的那一行上仍然收到以下错误:
类型“ _”没有成员“标识符”
似乎没有解析我的piis
列表中包含的对象的类型。有人知道为什么会这样吗?
答案 0 :(得分:3)
SwiftUI编译器错误通常是无用的(随着时间的流逝,这种错误将得到改善,但是今天它们已经无用了)。您的问题与\.identifier
无关。问题是您有一个可选的.label
,但没有处理为零的情况。几乎可以肯定,您应该将label
设为非可选。但是,如果需要它是可选的(如果您在某些地方对nil的处理不同于对null的处理),则需要对此做一些事情,例如:
Text(pii.label ?? "N/A")