我正在尝试在 SwiftUI 中实现一个非常基本的 NavigationView。当我尝试在其他网站上看到的示例代码时,它会在 Xcode 中生成一条错误消息。我不确定为什么或如何解决这个问题。
我试图清理项目,退出 Xcode-Beta 并重新启动它,但没有奏效。
struct ContentView : View {
var body: some View {
NavigationView {
Text("This is a great app")
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为上面的代码应该可以工作,但我得到的错误说:
“传递给调用的参数不带参数。”
有什么想法或建议吗?
Mar*_*ens 11
我也有同样的错误消息,并弄清楚我做错了什么,然后感觉自己像个白痴。哈哈。
我花了一段时间才发现我的 struct 与之前定义的 struct 名称相同VStack。哎呀!
所以我想知道您的项目中是否有一个文件也执行了此操作。
小智 8
VStack 只能接受 10 个参数。 如果多了就会出错,所以应该嵌套。
从
VStack{
}
Run Code Online (Sandbox Code Playgroud)
到
VStack{
VStack{
}
VStack{
}
}
Run Code Online (Sandbox Code Playgroud)
测试 Xcode 11.2.1 仍然有问题。我注意到,当我不断向 ContentView 添加原始视图时,我开始在之前工作的原始视图上收到诸如“传递给不带参数的调用的参数”、“表达式类型在没有更多上下文的情况下不明确”等错误。例如,当我更换时,
ScrollView {
VStack {
Text
Button
Image
Text
Button
Image
Text
Button
Image
...
}
}
Run Code Online (Sandbox Code Playgroud)
和
ScrollView {
VStack {
VStack {
Text
Button
Image
}
VStack {
Text
Button
Image
}
VStack {
Text
Button
Image
}
...
}
Run Code Online (Sandbox Code Playgroud)
我的代码再次开始编译并运行。
小智 5
检查您的应用程序是否存在名为 NavigationView 的 Swifui 类。另外,当您从 NavigationView 跳转到定义时,它应该引用:
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 7.0, *)
public struct NavigationView<Content> : View where Content : View {
public init(@ViewBuilder content: () -> Content)
/// The type of view representing the body of this view.
///
/// When you create a custom view, Swift infers this type from your
/// implementation of the required `body` property.
public typealias Body = Never
}
Run Code Online (Sandbox Code Playgroud)
@Matteo Pacini 帮助我找到了答案。当我启动一个新的 Xcode 项目只是为了测试上面的代码时,一切正常。我有很多文件,并且在我的其他项目中试验 SwiftUI 时测试了很多不同的代码,并且由于某种原因 XCode 总是生成此错误。
当我在新项目中尝试所有内容时,它都有效。测试时需要注意的事项。希望这可以帮助其他人避免类似的问题。
| 归档时间: |
|
| 查看次数: |
4864 次 |
| 最近记录: |