У меня проблемы с WKExtendedRuntimeSession.
- Я установил
WKExtendedRuntimeSessionDelegate
в моем ExtensionDelegate - Я запускаю сеанс, когда приложение активно с
.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
}