我正在尝试在SwiftUI中实现一个非常基本的NavigationView。当我尝试在其他网站上看到的示例代码时,它会在Xcode中生成错误消息。我不确定为什么或如何解决此问题。
我试图清理项目,退出Xcode-Beta并重新启动它,但这没有用。
struct ContentView : View {
var body: some View {
NavigationView {
Text("This is a great app")
}
}
}
我认为上面的代码应该可以工作,但是我收到的错误提示:
“传递给调用的参数不带参数。”
有什么想法或建议吗?
答案 0 :(得分:8)
VStack只能接受10个参数。 如果更多,则会出现错误,因此应将其嵌套。
来自
VStack{
}
到
VStack{
VStack{
}
VStack{
}
}
答案 1 :(得分:3)
正在测试Xcode 11.2.1,它仍然存在问题。我注意到当我继续向我的ContentView中添加原始视图时,我开始收到类似的错误 “传递给调用的参数不带参数”, 在以前起作用的原始视图上,“表达式类型不明确,没有更多上下文”。 例如,当我更换时,
ScrollView {
VStack {
Text
Button
Image
Text
Button
Image
Text
Button
Image
...
}
}
与
ScrollView {
VStack {
VStack {
Text
Button
Image
}
VStack {
Text
Button
Image
}
VStack {
Text
Button
Image
}
...
}
我的代码开始编译并再次运行。
答案 2 :(得分:3)
签入您的应用是否有任何名为 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
}
答案 3 :(得分:2)
我也有同样的错误信息,弄清楚我做错了什么,然后觉得自己像个白痴。哈哈。
我花了一段时间才弄清楚我的结构与先前定义的结构VStack
是同一个名字。糟糕!
所以我想知道您的项目中是否也有一个文件可以做到这一点。
答案 4 :(得分:0)
@Matteo Pacini帮助我找到了答案。当我开始一个新的Xcode项目时,只是为了测试所有工作之上的代码。在我的另一个项目中使用SwiftUI进行实验时,我有很多文件,并且正在测试许多不同的代码,由于某种原因,XCode始终会生成此错误。
当我在一个新项目中尝试一切时,它都起作用了。测试时需要注意的事项。希望这可以帮助其他人避免类似的问题。
答案 5 :(得分:0)
当我不小心尝试重新定义Text结构时,我发现了这个问题。检查您对自定义类的命名是否与SwiftUI中的命名相同。