簡體   English   中英

Xcode 11 Beta 3,構建錯誤“未知屬性'狀態'”,“使用未聲明的類型'視圖'”等

[英]Xcode 11 Beta 3, build error "Unknown attribute 'State'", "Use of undeclared type 'View'" etc

我使用 SwiftUI 使用 Xcode 11 的第二個 beta 構建了一個應用程序,一切都運行良好,但是現在,使用第三個 beta 版,該應用程序甚至都沒有構建。 我收到諸如“使用未聲明的類型'View'”、“未知屬性'State'”等錯誤。我該怎么辦? 是我的代碼中的問題還是只是一個錯誤?

問題是當我嘗試構建應用程序以在我的 Mac 上運行時(使用 UIKit for Mac)

@State var score = 0

錯誤是“未知屬性‘狀態’”

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

錯誤是“使用未聲明的類型'View'”

在 Xcode 11.2 上遇到同樣的問題。 發現原因是在同一個模塊的某個地方我聲明了protocol State {} 這會破壞編譯器而沒有任何合理的錯誤。

這是來自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。 否則,在下一個測試版發布之前,您可能會不走運。

我在 Beta 5 中遇到了同樣的“未知屬性‘狀態’”問題。但我正在做“@state”而不是“@State”。 案件很重要。 很難注意到,因為兩種方式都顯示為紫色。

如果您正在做一個 Kotlin 多平台項目,請檢查您的共享模塊是否有一個名為“State”的組件。

取而代之的是@main,請替換@UIApplicationMain。 我附上了截圖。 https://prnt.sc/vimvwn

我在嘗試編譯在Xcode 11上使用Xcode 13創建的 Swift 項目時遇到了同樣的錯誤。 問題是新版本使用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);
}
**import SwiftUi** in your file

@State屬性與 SwiftUI 相關聯。 只需 ***import SwiftUI *** 在您的文件中,錯誤就會得到解決。 干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM