为什么不能在预览中将变量传递给SwiftUI视图?

时间:2020-04-03 02:32:38

标签: swift swiftui

这是我第一次使用SwiftUI构建应用,而Xcode在尝试创建界面时给了我一些奇怪的错误。

我最终想要的是一个在骰子数组上迭代的列表(Die是我创建的用于定义特定骰子的结构,例如d6或d20)。

现在,我只是在测试界面。为了在Xcode中进行测试/预览,我希望能够使用一些测试数据,但是我还不太清楚如何将该变量传递到主视图中。我收到一条警告,“未使用初始化程序的结果”,并收到一条错误消息,“函数声明了不透明的返回类型,但主体中没有用于从其推断基础类型的返回语句”。

我可能做过一些愚蠢的事情。谁能帮忙照亮什么?

struct DiceListView: View {
    var diceToList: [Die]

    var body: some View {
        Text("testing")
    }

    init(dice: [Die]) {
        diceToList = dice
    }
}

struct DiceListView_Previews: PreviewProvider {
    static var previews: some View {

        // setup test dice data (d4, d5, d6)
        let testDice: [Die] = [Die(sides: 4), Die(sides: 5), Die()]


        DiceListView(dice: testDice)
    }
}

1 个答案:

答案 0 :(得分:1)

在这种情况下,它无法自动检测返回类型,因此这里有可能的解决方法

static var previews: some View {

    // setup test dice data (d4, d5, d6)
    let testDice: [Die] = [Die(sides: 4), Die(sides: 5), Die()]
    return DiceListView(dice: testDice)
}

static var previews: some View {

    // setup test dice data (d4, d5, d6)
    DiceListView(dice: [Die(sides: 4), Die(sides: 5), Die()])
}