Xcode报错:No exact matches in reference to static method ‘buildExpression‘
Xcode报错1:No exact matches in reference to static method 'buildExpression'
Xcode报错2:Type '()' cannot conform to 'View'
这两个报错都是因为在SwiftUI的View的Body里面使用了ForEach循环,却没有在ForEach循环闭包的内部返回视图,而是做了一个对数据集合进行修改的操作,所以才报错
SwiftUI中的ForEach是一个视图构建器,用于根据提供的数据集合创建视图。
在SwiftUI中,嵌套ForEach应仅用于常量数据。这意味着,如果数据集合是不可变的,即在创建后不会发生变化,那么可以使用嵌套ForEach来创建视图。这种情况下,ForEach会自动为数据集合中的每个元素创建一个视图。
解决方案:
在ForEach循环内部只需要返回遵循View协议的视图就好,如果需要对数据集合中某个某个数据的某个属性进行修改,修改后能更新视图,可以使用For in 循环来做或者将修改操作放到某个点击事件的闭包里或者是某个UI更新的回调闭包里去修改