SwiftUI-NavigationView错误消息-传递给不带参数的调用的参数
我正在尝试在SwiftUI中实现一个真正基本的NavigationView。当我尝试在其他网站上看到的示例代码时,它会在Xcode中生成错误消息。我不知道为什么或者如何解决这个问题 我曾尝试清理该项目,退出Xcode测试版并重新启动它,但没有成功SwiftUI-NavigationView错误消息-传递给不带参数的调用的参数,swift,swiftui,Swift,Swiftui,我正在尝试在SwiftUI中实现一个真正基本的NavigationView。当我尝试在其他网站上看到的示例代码时,它会在Xcode中生成错误消息。我不知道为什么或者如何解决这个问题 我曾尝试清理该项目,退出Xcode测试版并重新启动它,但没有成功 struct ContentView : View { var body: some View { NavigationView { Text("This is a great app")
struct ContentView : View {
var body: some View {
NavigationView {
Text("This is a great app")
}
}
}
我认为上面的代码应该可以工作,但我得到的错误是:
“传递给不带参数的调用的参数。”
有什么想法或建议吗?@Matteo Pacini帮我找到了答案。当我启动一个新的Xcode项目只是为了测试代码时,一切都起了作用。我有很多文件,在我的另一个项目中试验SwiftUI时测试了很多不同的代码,出于某种原因,XCode总是产生这个错误
当我在一个新项目中尝试了所有东西时,它成功了。测试时要注意的一些事情。希望这能帮助其他人避免类似的问题。我在不小心尝试重新定义文本结构时发现了这个问题。检查自定义类的命名是否与SwiftUI中的相同 正在测试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
}
...
}
我的代码开始编译并再次运行。VStack只能接受10个参数。 如果更多,则会出现错误,因此应将其嵌套 从 到
我也有同样的错误信息,我发现自己做错了什么,然后觉得自己像个白痴。哈哈 看一看: 我花了一段时间才发现我的结构与以前定义的结构同名
VStack
哇
所以我想知道你的项目中是否也有这样的文件。签入你的应用程序是否有名为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
}
@可用(iOS 13.0、macOS 10.15、tvOS 13.0、watchOS 7.0、*)
公共结构导航视图:视图,其中内容:视图{
public init(@ViewBuilder content:()->content)
///表示此视图主体的视图类型。
///
///创建自定义视图时,Swift会根据您的
///所需“body”属性的实现。
public typealias Body=Never
}
在我这方面编译得很好-错误可能在别处。铿锵的错误目前有点误导人。@MatteoPacini谢谢!你给了我一个重新开始一个干净的Xcode项目的想法,这就解决了问题。仍然有点奇怪,但考虑到我们正处于测试阶段,我会将此解决方案添加到我的工具包中,并立即在一个干净的项目中进行测试(如果它们应该工作)。一个简单的“产品>干净构建文件夹”为我做了这件事。为了一个有趣的小故事,大约一年前,我试着去学习斯威夫特,当时我正在浏览斯威夫特,现在我又重新开始了。我清楚地记得大约一年前,在一个教程之后,添加了一个间隔符,结果却抛出了一个错误,并且非常困惑。我一点也不知道,答案很简单,因为我超出了争论的限度。好东西
VStack{
VStack{
}
VStack{
}
}
@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
}