用于后台任务的 WatchOS 代码需要 WKExtention.shared().delegate
设置为 self
,但现在显示一条错误消息:
Cannot assign to property: 'delegate' is a get-only property
如果我删除该行,则在触发后台任务时我不会收到更新,因为我以前可以接收。
我上下查看了 StackOverflow 以及 Google 和 Apple 文档,但找不到答案。为什么该行在过去工作正常时现在显示错误。
制作一个新的 WatchKit 应用程序并在
InterfaceControllerVC.swift
上添加
WKExtensionDelegate
到类(class)和: override func awake(withContext context: Any?) {
super.awake(withContext: context)
WKExtension.shared().delegate = self
}
线路:
WKExtension.shared().delegate = self
被标记为红色并显示错误为:
Cannot assign to property: 'delegate' is a get-only property
最佳答案
关于如何使用现代 SwiftUI 应用程序执行此操作的文档并不多,Info.plist 方法似乎不再适用。也许这会帮助其他人更快地解决这个问题:使用 WKExtensionDelegateAdaptor
,类似于 UIApplicationDelegateAdaptor
.
@main
struct WatchApp: App {
@WKExtensionDelegateAdaptor(ExtensionDelegate.self) var extensionDelegate
@SceneBuilder var body: some Scene {
...
}
关于swift - WKExtension.shared().delegate = self 现在显示无法分配给属性 : 'delegate' is a get-only property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56530257/