使用Xcode 12尝试为我的项目创建Widget应用扩展。
创建新的Widget目标时,出现以下错误:
'Widget' is annotated with @main and must provide a main static function of type () -> Void or () throws -> Void.
您正在使用名称Widget
,在Widget
框架中已经有一个名为SwiftUI
的协议。
您应该使用其他名称,但如果确实要使用,请在开始时添加模块名称,例如SwiftUI.Widget
@main
struct Widget: SwiftUI.Widget {
private let kind: String = "Widget"
public var body: some WidgetConfiguration {
IntentConfiguration(kind: kind,intent: ConfigurationIntent.self,provider: Provider(),placeholder: PlaceholderView()) { entry in
WidgetEntryView(entry: entry)
}
.configurationDisplayName("My Widget")
.description("This is an example widget.")
}
}
,
对于希望在为iOS14项目打开Mac时解决AppDelegate问题的任何人-请咨询:iOS Xcode 12.0 Swift 5 'AppDelegate' is annotated with @main and must provide a main static function of type () -> Void or () throws -> Void
解决方法是将“ @main”更改为“ @UIApplicationMain”
,此代码有相同的错误:
import WidgetKit
@main
struct WidgetSale: Widget {
let kind: String = "widgetSale"
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind,provider: Provider()) { entry in
widgetSaleEntryView(entry: entry)
}
.configurationDisplayName("My Widget")
.description("This is an example widget.")
}
}
我通过在文件顶部导入swiftUI解决此问题:
import SwiftUI