首页 > 解决方案 > Swift UI、Use Picker、forEach 和 Section 一起出现错误

问题描述

我在 Picker 中使用 ForEach(),但调试出错。

Xcode 版本 11.2 (11B52)

var radiusRangeKM = Array((stride(from: 50, to: 2010, by: 10)))

    var body: some View {
        NavigationView {
            //TODO: Form Set Up
            Form {

                Section() {
                    Picker(selection: $selectedRadius, label: Text("Radius(KM)")) {
                        ForEach(0 ..< radiusRangeKM.count, id: \.self) {
                            Text(String(self.radiusRangeKM[$0])).tag($0)
                        }
                    }

                }


            }
            .navigationBarTitle(Text("Settings"))
        }
}

调试窗口出错

[TableView] 仅警告一次:UITableView 被告知布局其可见单元格和其他内容而不位于视图层次结构中(表视图或其超级视图之一尚未添加到窗口中)。这可能会在没有准确信息的情况下强制表视图中的视图加载和执行布局(例如表视图边界、特征集合、布局边距、安全区域插入等),从而导致错误,并且还会由于额外的布局传递而导致不必要的性能开销. 在 UITableViewAlertForLayoutOutsideViewHierarchy 处创建一个符号断点,以便在调试器中捕获此问题并查看导致此问题发生的原因,因此您可以在可能的情况下完全避免此操作,或者将其推迟到表格视图添加到窗口之前。表视图:<_TtC7SwiftUIP33_BFB370BA5F1BADDC9D83021565761A4925UpdateCoalescingTableView:0x7f9d5e98b000;基类 = UITableView; 帧 = (0 0; 414 842); clipsToBounds = YES; 自动调整大小 = W+H;手势识别器 = ; 层 = ; 内容偏移:{0,-108};内容大小:{414, 8702.0000000000109};调整后的内容插入:{108、0、34、0};数据源:<_TtGC7SwiftUIP13$7fff2c6b223419ListCoreCoordinatorGVS_20SystemListDataSourceOs5Never_GOS_19SelectionManagerBoxS2___:0x7f9d5cf80c50>>

2019 年 12 月 16 日更新

将您的 iOS 系统更新到 13.3,它可以在真正的 iPhone 上正常运行,但警告仍然存在。

标签: arraysswiftswiftuiios13xcode11.2

解决方案


推荐阅读