Xcode 11 Beta 3,构建错误 "Unknown attribute 'State'"、"Use of undeclared type 'View'" 等
Xcode 11 Beta 3, build error "Unknown attribute 'State'", "Use of undeclared type 'View'" etc
我使用 SwiftUI 使用 Xcode 11 的第二个测试版构建了一个应用程序,并且一切正常,但是现在,对于第三个测试版,该应用程序甚至没有构建。我收到 "Use of undeclared type 'View'"、"Unknown attribute 'State'" 等错误。我该怎么办?是我的代码有问题还是只是一个错误?
问题是当我试图在我的 Mac 上将应用程序构建到 运行 时(使用 UIKit for Mac)
@State var score = 0
错误是"Unknown attribute 'State'"
struct ContentView : View {
/*...*/
}
错误是"Use of undeclared type 'View'"
这是来自 Xcode 11 Beta 3 Release Notes.
Known Issues
- Xcode 11 doesn’t support working with SwiftUI in an iPad app brought to macOS. (41416222, 51201699)
我自己下载了 Xcode 11 Beta 3 只是为了确认你提到的错误,我在尝试为 Mac.
构建 SwiftUI 项目时遇到了同样的问题
如果可能的话,我建议重新使用 Xcode Beta 2。遗憾的是,Apple 不提供以前 Beta 版的下载链接,因此希望您的计算机上仍安装有 Time Machine 备份或 Beta 2。否则,在下一个测试版发布之前,您可能会倒霉。
我在 Beta 5 中遇到了同样的 "Unknown attribute 'State'" 问题。但我做的是“@state”而不是“@State”。案件很重要。很难注意到,因为两种方式都显示为紫色。
在 Xcode 11.2 上遇到了同样的问题。发现原因是我在同一个模块的某处声明了 protocol State {}
。这会破坏编译器而不会出现任何合理的错误。
请用@main代替@UIApplicationMain。
我附上了截图。
https://prnt.sc/vimvwn
如果您正在做一个 Kotlin 多平台项目,请检查您的共享模块是否有一个名为“State”的组件。
我在 Xcode 上尝试编译使用 Xcode 13 创建的 Swift 项目时遇到了同样的错误11。问题是新版本使用 SDK 12.1 而旧版本使用 SDK 10.15。为了让项目在较旧的 Xcode/SDK 上编译,我刚刚执行了这些步骤:
从 swift 源代码中删除 @main
属性
在 框架、库和嵌入式内容部分添加 Cocoa.framework
将名为 main.m 的文件添加到项目(无桥头),内容如下:
#include <Cocoa/Cocoa.h>
int main(int argc, const char * argv[]) {
return NSApplicationMain(argc, argv);
}
我使用 SwiftUI 使用 Xcode 11 的第二个测试版构建了一个应用程序,并且一切正常,但是现在,对于第三个测试版,该应用程序甚至没有构建。我收到 "Use of undeclared type 'View'"、"Unknown attribute 'State'" 等错误。我该怎么办?是我的代码有问题还是只是一个错误?
问题是当我试图在我的 Mac 上将应用程序构建到 运行 时(使用 UIKit for Mac)
@State var score = 0
错误是"Unknown attribute 'State'"
struct ContentView : View {
/*...*/
}
错误是"Use of undeclared type 'View'"
这是来自 Xcode 11 Beta 3 Release Notes.
Known Issues
- Xcode 11 doesn’t support working with SwiftUI in an iPad app brought to macOS. (41416222, 51201699)
我自己下载了 Xcode 11 Beta 3 只是为了确认你提到的错误,我在尝试为 Mac.
构建 SwiftUI 项目时遇到了同样的问题如果可能的话,我建议重新使用 Xcode Beta 2。遗憾的是,Apple 不提供以前 Beta 版的下载链接,因此希望您的计算机上仍安装有 Time Machine 备份或 Beta 2。否则,在下一个测试版发布之前,您可能会倒霉。
我在 Beta 5 中遇到了同样的 "Unknown attribute 'State'" 问题。但我做的是“@state”而不是“@State”。案件很重要。很难注意到,因为两种方式都显示为紫色。
在 Xcode 11.2 上遇到了同样的问题。发现原因是我在同一个模块的某处声明了 protocol State {}
。这会破坏编译器而不会出现任何合理的错误。
请用@main代替@UIApplicationMain。 我附上了截图。 https://prnt.sc/vimvwn
如果您正在做一个 Kotlin 多平台项目,请检查您的共享模块是否有一个名为“State”的组件。
我在 Xcode 上尝试编译使用 Xcode 13 创建的 Swift 项目时遇到了同样的错误11。问题是新版本使用 SDK 12.1 而旧版本使用 SDK 10.15。为了让项目在较旧的 Xcode/SDK 上编译,我刚刚执行了这些步骤:
从 swift 源代码中删除
@main
属性在 框架、库和嵌入式内容部分添加 Cocoa.framework
将名为 main.m 的文件添加到项目(无桥头),内容如下:
#include <Cocoa/Cocoa.h>
int main(int argc, const char * argv[]) {
return NSApplicationMain(argc, argv);
}