获取错误“;无法推断复杂的闭包返回类型;添加显式类型以消除歧义;尝试重新创建SwiftUI列表演示时
我正在尝试重新创建SwiftUI演示,不同之处在于我想使用我自己的对象获取错误“;无法推断复杂的闭包返回类型;添加显式类型以消除歧义;尝试重新创建SwiftUI列表演示时,swift,xcode,swiftui,Swift,Xcode,Swiftui,我正在尝试重新创建SwiftUI演示,不同之处在于我想使用我自己的对象项 项目: class Item { var company: String = "" var item_class: String = "" var name: String = "" var stock: Int = 0 var average_cost: Decimal = 0.00 var otc_price: Decimal = 0.00 var dealer
项
项目:
class Item {
var company: String = ""
var item_class: String = ""
var name: String = ""
var stock: Int = 0
var average_cost: Decimal = 0.00
var otc_price: Decimal = 0.00
var dealer_price: Decimal = 0.00
var ctc_price: Decimal = 0.00
class var _API_LIST_EP: String {return "api/inventory/items/"}
// Init and Funcs
// JToken is an extended typealias for [String : Any] that makes parsing easier
required init(_ jt: JToken) {
company = jt.string(forKey: "company")
item_class = jt.string(forKey: "item_class")
name = jt.string(forKey: "name")
stock = jt.int(forKey: "stock")
average_cost = jt.decimal(forKey: "average_cost")
otc_price = jt.decimal(forKey: "otc_price")
dealer_price = jt.decimal(forKey: "dealer_price")
ctc_price = jt.decimal(forKey: "ctc_price")
}
}
在一个类似的例子中,有人指出,问题源于对象的一个变量在不明确的状态下被初始化,但是在填充了对象的所有变量之后,它仍然会出现
问题代码:
struct ContentView : View {
var itemList: [Item] = []
var body: some View {
List(itemList) { item in
Image(systemName: "photo")
VStack(alignment: .leading) {
Text(item.name)
Text(item.company)
.font(.subheadline)
.color(.gray)
}
}
}
}
错误的屏幕截图:
错误消息具有误导性
List(itemList) { item in ... }
要求itemList
的元素类型符合可识别协议。对于类(如您的情况),声明协议一致性就足够了
class Item: Identifiable {
// ...
}
因为有一个默认的实现(基于对象标识符)。请将有问题的代码作为代码发布,而不是作为屏幕截图发布。道歉就可以了!我还想知道,如果类不是从超类继承的,如何让重写类var
和super.init()
和往常一样,a会很有帮助。我的错误是,我尝试了一个解决方案,而不是在发布之前先清理它,我做了相反的事情。我刚刚做了一个传递,现在应该很好了项目
必须符合可识别
。。。