gpt4 book ai didi

ios - Watch OS 应用程序无法与 iOS 应用程序连接

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:08 26 4
gpt4 key购买 nike

我正在尝试将我的 Watch OS 应用程序与 iOS 应用程序连接并获取一些数据,但是当我尝试连接 iOS 应用程序时出现以下错误:

[WC] __28-[WCSession activateSession]_block_invoke_2 sessionReadyForInitialStateWithCompletionHandler failed due to NSXPCConnectionInterrupted

__44-[WCSession updateApplicationContext:error:]_block_invoke failed due to WCErrorCodeSessionNotActivatedWatchConnectivity session has not been activated.

iOS 应用代码:

- (void) startSession{
if ([WCSession isSupported]) {
self.session = [WCSession defaultSession];
self.session.delegate = self;
[self.session activateSession];
}

观看操作系统代码:

func startSession() {
if(session.activationState != .activated){
session.delegate = self
session.activate()
}
}
public func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?){
print("activationDidCompleteWith")
if activationState == WCSessionActivationState.activated {
NSLog("Activated")
if(WCSession.default().isReachable){

do {
try session.updateApplicationContext(
[WatchRequestKey : "updateData"]
)
}
catch let error as NSError {
print("\(error.localizedDescription)")
}
}
}

if activationState == WCSessionActivationState.inactive {
NSLog("Inactive")
}

if activationState == WCSessionActivationState.notActivated {
NSLog("NotActivated")
}
}

iOS 应用在 objective C 中,watch 应用在 swift 中

我先执行我的 iOS 应用程序代码,它运行了委托(delegate)方法,但是当我运行 watch os 应用程序时,它无法执行任何委托(delegate)方法,并产生上述错误。

最佳答案

activate() 方法运行 asynchronously从 Watch OS v2.2 开始。因此,在您的代码中,在调用 activate() 之后调用 updateApplicationContext 并不能保证在尝试更新应用程序上下文时 session 将被实际激活。

正确的流程是将您的消息移动到session(_:activationDidCompleteWith:error:),例如:

func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) {
if activationState == .activated {
// Update application context here
}
}

关于ios - Watch OS 应用程序无法与 iOS 应用程序连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41896818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com