【发布时间】:2020-05-07 09:32:01
【问题描述】:
我在使用 WKExtendedRuntimeSession 时遇到了一些问题。
- 我在我的 ExtensionDelegate 中设置了
WKExtendedRuntimeSessionDelegate - 当应用程序处于活动状态时,我使用
.start()启动会话 - 我使用
session.invalidate()停止会话
当我再次启动它时,我收到以下错误:
-[WKExtendedRuntimeSession _start]:308: Unable to start sessions because state == WKExtendedRuntimeSessionStateInvalid. notifying delegate <MYAPP_Extension.ExtensionDelegate: 0x17e663d0>. Error is (null)
代码
我的扩展代理
var session = WKExtendedRuntimeSession()
class ExtensionDelegate: NSObject, WKExtensionDelegate, WKExtendedRuntimeSessionDelegate {
func extendedRuntimeSession(_ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error?) {
print("Session stopped at", Date())
}
func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print("Session started at", Date())
}
func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
}
func applicationDidBecomeActive() {
session.delegate = self
}
我的开始发生在.onAppear(perform:{ session.start() })
取消:
func cancelNow() {
self.timer.connect().cancel()
session.invalidate()
return
}
【问题讨论】:
标签: delegates swiftui watchos watchos-6