Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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
Ios 在SwiftUI中生成列表视图时出错_Ios_Swift_List_Swiftui_Xcode11 - Fatal编程技术网

Ios 在SwiftUI中生成列表视图时出错

Ios 在SwiftUI中生成列表视图时出错,ios,swift,list,swiftui,xcode11,Ios,Swift,List,Swiftui,Xcode11,对于我的应用程序,我试图从元组数组中创建一个列表,但我得到以下错误: 无法使用类型为“([EggDayList.EggDay]”、@escaping([CellDayRow.EggDay])->NavigationLink的参数列表调用类型为“List”的初始值设定项 我以前列过几个清单,但我不知道这里出了什么问题 struct EggDayList: View { typealias EggDay = (day: Int, mW: Double, measured: Bool, da

对于我的应用程序,我试图从元组数组中创建一个列表,但我得到以下错误:

无法使用类型为“([EggDayList.EggDay]”、@escaping([CellDayRow.EggDay])->NavigationLink的参数列表调用类型为“List”的初始值设定项

我以前列过几个清单,但我不知道这里出了什么问题

struct EggDayList: View {

    typealias EggDay = (day: Int, mW: Double, measured: Bool, daily: Double)
    var actualWeights : [EggDay] = [
        (1, 35.48, true, 0.00), (2, 35.23, true, 0.00), (3, 34.92, true, 0.00), (4, 34.64, true, 0.00),(5, 34.29, true, 0.00), (6, 33.86, true, 0.00), (7, 33.48, true, 0.00), (8, 33.12, true, 0.00), (9, 32.77, true, 0.00), (10, 32.45, true, 0.00), (11, 32.08, true, 0.00), (12, 31.87, true, 0.00), (13, 31.55, true, 0.00), (14, 31.46, true, 0.00), (15, 31.33, true, 0.00), (16, 31.24, true, 0.00), (17, 31.14, true, 0.00), (18, 31.02, true, 0.00), (19, 30.90, true, 0.00), (20, 30.81, true, 0.00), (21, 30.65, true, 0.00), (22, 30.54, true, 0.00), (23, 30.31, true, 0.00), (24, 30.12, true, 0.00), (25, 29.97, true, 0.00), (26, 29.82, true, 0.00) ]

    var body: some View {

        NavigationView {

            List(actualWeights) { eggDay in
                NavigationLink(destination: EggDetail()) {
                    CellDayRow(eggDay: eggDay)
                }
            }
            .navigationBarTitle("Measurements")
        }
    }
}

struct CellDayRow: View {
    typealias EggDay = (day: Int, mW: Double, measured: Bool, daily: Double)
    let eggDay : [EggDay]
    var body: some View {
        HStack {
            Text("String(eggDay.day)")
                .bold()
                .font(.headline)
            }
    }
}

该错误是因为
实际重量
不可识别,不能单独用作
列表
参数。您应该为每个元素指定标识符:

Xcode 11 beta 5及以上版本:

List(actualWeights, id: \.day) { eggDay in Text("Text") }
Xcode 11 beta 4及以下版本:

List(actualWeights.identified(by: \.day)) { eggDay in Text("Text") }
但是每个元素都应该有一个唯一的id,并基于此创建列表。像这样:

typealias EggDay = (id: String, day: Int, mW: Double, measured: Bool, daily: Double)
let uniqueEggDay = (UUID().uuidString, 1, 35.48, true, 0.00)
List([uniqueEggDay], id: \.id) { eggDay in Text("Text") }

我会为EggDay创建一个
struct
,而不是
tuple
,并使它符合
可识别的
协议。它更方便、更干净。

这就是您提到的错误的答案。如果您不能处理其他错误,请随时提出新问题。