【问题标题】:Xcode 11 Beta 3, build error "Unknown attribute 'State'", "Use of undeclared type 'View'" etcXcode 11 Beta 3,构建错误“未知属性'状态'”,“使用未声明的类型'视图'”等
【发布时间】:2019-11-19 20:58:38
【问题描述】:

我使用 SwiftUI 使用 Xcode 11 的第二个测试版构建了一个应用程序,并且一切正常,但现在,使用第三个测试版,该应用程序甚至都没有构建。我收到诸如“使用未声明的类型'View'”、“未知属性'State'”等错误。我该怎么办?是我的代码有问题还是只是一个错误?

问题是当我尝试构建应用程序以在我的 Mac 上运行(使用 UIKit for Mac)时

@State var score = 0

错误是“未知属性'状态'”

struct ContentView : View {
    /*...*/
}

错误是“使用未声明的类型'View'”

【问题讨论】:

  • 你导入SwiftUI框架了吗?
  • @SohilR.Memon 是的,否则它也无法在 iOS 上运行。

标签: swift macos swiftui xcode11 uikitformac


【解决方案1】:

在 Xcode 11.2 上遇到了同样的问题。发现原因是在同一个模块的某个地方我声明了protocol State {}。这会在没有任何合理错误的情况下破坏编译器。

【讨论】:

  • 在这种情况下你可以简单地做@SwiftUI.State
  • 这正是我所做的,但struct State。谢谢!
【解决方案2】:

这是来自Xcode 11 Beta 3 Release Notes

已知问题

  • Xcode 11 不支持在带至 macOS 的 iPad 应用程序中使用 SwiftUI。 (41416222, 51201699)

我自己下载了 Xcode 11 Beta 3 只是为了确认您提到的错误,并且在尝试为 Mac 构建 SwiftUI 项目时遇到了同样的问题。

如果可能,我建议重新使用 Xcode Beta 2。不幸的是,Apple 不提供以前测试版的下载链接,因此希望您的计算机上仍然安装了 Time Machine 备份或 Beta 2。否则,在下一个测试版发布之前,您可能会运气不佳。

【讨论】:

    【解决方案3】:

    我在 Beta 5 中遇到了同样的“未知属性 'State'”问题。但我正在执行“@state”而不是“@State”。案件很重要。很难注意到,因为两种方式都显示为紫色。

    【讨论】:

    • 这是我。天哪,我对大写也很小心
    【解决方案4】:

    如果您正在做一个 Kotlin 多平台项目,请检查您的共享模块是否有一个名为“State”的组件。

    【讨论】:

    • Kotlin 不是专门为 Android 设计的吗?
    • @Joel 幸运的是没有。您可以在 JVM、JS 和 Native 上运行它。尽管您可能想检查 JS 和 Native 是否足以满足您的用例需求。
    【解决方案5】:

    请用@main 替换@UIApplicationMain。 我附上了截图。 https://prnt.sc/vimvwn

    【讨论】:

    • macOS 应用程序也是如此。如果您在 XCode 11 Unknown attribute 'Main' 中遇到错误,请将 @Main 替换为 @NSApplicationMain。不同的问题,但相同的解决方案。
    猜你喜欢
    • 2017-12-22
    • 2014-10-24
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2018-10-07
    相关资源
    最近更新 更多