我在View中使用Swift代码遇到一个奇怪的错误:
迅捷文件1
[...]
let cookingDifficulties: [String] = ["Very easy","Easy","Medium","Difficult"]
[...]
Swift文件2:一个正在编译
[...]
Picker(selection: $selectedCookingDifficulty, label: Text("")) {
ForEach(0..<cookingDifficulties.count) {
Text(cookingDifficulties[$0])
}
}.pickerStyle(SegmentedPickerStyle())
[...]
Swift文件3:无法推断出返回通用参数“ S”的错误
[...]
HStack{
Text("Difficulty: ")
Picker(selection: $selectedCookingDifficulty, label: Text("")) {
ForEach(0..<cookingDifficulties.count) { //--> Ambiguous reference to member 'count'
Text(cookingDifficulties[$0]) //--> Generic parameter 'S' could not be inferred
}
}.pickerStyle(SegmentedPickerStyle())
}
[...]
我花了几个小时来寻找答案,但没有成功。
任何人都有一个好主意吗?
最佳答案
由于两个选择器本质上是相同的,并且第一个选择器可以编译,因此我强烈认为错误实际上是视图主体中的其他代码。
同样,当放置在干净的视图中时,第二个失败的选择器代码对于我来说也可以编译。
收到的错误消息也表明了这一点(当错误在其他地方时,我已经看到了此类错误。
我会在失败的选择器代码上方注释部分,直到编译为止。
仅供参考:
设置@State selectedDifficulty
的方式最初不会设置选择。这样做:
Picker(selection: $selectedCookingDifficulty, label: Text("")) {
ForEach(cookingDifficulties, id: \.self) {
Text($0)
}
}