Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取错误“;无法推断复杂的闭包返回类型;添加显式类型以消除歧义;尝试重新创建SwiftUI列表演示时_Swift_Xcode_Swiftui - Fatal编程技术网

获取错误“;无法推断复杂的闭包返回类型;添加显式类型以消除歧义;尝试重新创建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

我正在尝试重新创建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_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会很有帮助。我的错误是,我尝试了一个解决方案,而不是在发布之前先清理它,我做了相反的事情。我刚刚做了一个传递,现在应该很好了
项目
必须符合
可识别
。。。