无法使用SwiftUI推断复杂的闭包返回类型
在苹果关于SwiftUI的教程的第3部分中,我发现了以下错误: 无法推断复杂的闭包返回类型;添加显式类型以消除歧义 我使用的代码与教程中的代码相同(即使使用“完整”示例代码也不能解决错误) 有人知道这里出了什么问题吗 不管问题的原因是什么,您如何在这里添加显式类型来消除歧义?在这种情况下,返回类型是什么 -- 更新 显然,你不应该在第三节继续第二节教程的结果。在本教程中未记录的教程之间,有些内容发生了更改。我已将项目文件添加到Github,因此您可以无法使用SwiftUI推断复杂的闭包返回类型,swiftui,xcode11,Swiftui,Xcode11,在苹果关于SwiftUI的教程的第3部分中,我发现了以下错误: 无法推断复杂的闭包返回类型;添加显式类型以消除歧义 我使用的代码与教程中的代码相同(即使使用“完整”示例代码也不能解决错误) 有人知道这里出了什么问题吗 不管问题的原因是什么,您如何在这里添加显式类型来消除歧义?在这种情况下,返回类型是什么 -- 更新 显然,你不应该在第三节继续第二节教程的结果。在本教程中未记录的教程之间,有些内容发生了更改。我已将项目文件添加到Github,因此您可以 最好从新下载的项目文件开始第三个教程 问题
最好从新下载的项目文件开始第三个教程 问题不在于闭包,而在于landmark上的
isFavorite
属性
它没有在Landmark
类型上声明,编译器没有显示未声明的属性错误,无法解析stacks build closure返回类型,因此在那里显示and error
非常好的苹果教程作者和更好的Xcode11编译器
要修复:
Landmark
类型上声明isFavorite
变量李>
isFavorite=false
条目为每个landmark记录更新landmarkData.json
,否则应用程序将在运行时崩溃View
代码中发现一个bug
had讨论了如何从ViewController合成视图,这一点直到今天仍然适用:基本上,您从未在另一个视图中使用视图作为子视图,但您需要将视图分解为许多简单的视图。否则这些错误会让你发疯。适用于在SwiftUI上遇到此错误并正在寻找调试其视图堆栈的方法的用户。 此错误主要发生在一个子视图上存在编译问题时 1-确保父视图可以支持多个子视图(VStack、ZStack),并且子视图少于10个。有时您可能需要添加组包装器 2-如果这不是问题所在,则一个子视图可能存在问题。试着找出你怀疑有问题的人。通常我将子视图复制到属性中,会出现不同的错误
var debug: some View {
MyViewWithError(property: self.property)
}
大多数情况下,您会遇到这种情况,因为您传递的是属性(self.property
),而不是绑定(self.$property
)
希望这能帮助一些人我打字时遇到了这个错误。当代码出现语法问题时,也会出现此错误。只需检查您的更改是否正确我在一个子视图中遇到了问题,其中@Binding道具属于不同类型的@Binding源。检查!我原以为我可以继续上一个教程的结果,但很明显他们改变了
landmarkData.json
和教程之间的一些类!谢谢。作为swift和swift生态系统的新来者,请看这里的完整差异,这似乎仍然非常不友好。我开始研究Swift,因为SwiftUI和SwiftUI声明给出的错误消息非常不可读,根本无法理解。错误行远离你有错误的地方(对我来说,最常见的是缺少参数名称)是非常令人沮丧的。是的,但是错误消息一直在改进,它在编译器反馈和错误消息的有用性方面比Swift 1.0要好得多。那真的很粗糙。
var debug: some View {
MyViewWithError(property: self.property)
}