小编Gal*_*ith的帖子

选择器选择“0”无效并且没有关联的标签

我有一个包含交易类别的类(请参阅下面的示例代码),用户可以在设置过程中从中选择一个子集以在应用程序中使用。稍后在事务输入期间,如果未选择类中的第一个类别(在设置期间)并且选择器状态参数初始化为零,我会看到控制台消息“选择器:选择“0”无效并且没有关联的标签,这将给出未定义的结果”。事实上,如果状态参数初始化为 5 并且在设置过程中未选择第 5 个类别,它也会给出相同的警告。

我的问题是如何初始化状态参数,这样我就不会收到此选择器警告?

从控制台消息中我认为问题出在 ForEach 循环而不是条件。但如果删除条件if categories.catItem[item].catInUse == true {,我就看不到警告。

例如,在下面的代码中,如果在应用程序设置期间未选择类别Cat A(catInUse 为 false)并且交易条目选择器状态参数为, @State private var entryCat: Int = 0我将看到上面的控制台警告消息。类别Cat A仍然在列表中 - 只是没有显示。

struct getCategory: View {

    @EnvironmentObject var categories: Categories

    @State private var entryCat: Int = 0

    var body: some View {

        Section(header: Text("Select Category")) {

            Picker(selection: $entryCat, label: Text("")) {
                ForEach(0 ..< categories.catItem.count, id: \.self) { item in
                    if categories.catItem[item].catInUse == true {
                        Text(categories.catItem[item].catName)
                            .bold()
                    } …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

2
推荐指数
1
解决办法
2682
查看次数

标签 统计

swift ×1

swiftui ×1