【发布时间】:2023-03-31 10:20:02
【问题描述】:
当我调用 session.activateSession() 方法时,我遇到了 WatchKit 连接会话无法激活的问题。这是我用来设置会话的代码。
if (WCSession.isSupported()) {
session = WCSession.defaultSession()
session.delegate = self // conforms to WCSessionDelegate
session.activateSession()
print("Session has been activated")
}
但是,我在打印行放置了一个断点,当我检查会话对象时,它说 sessionActivated 属性仍然为 false,即使在调用 activateSession 之后也是如此。当我调用激活会话时,我似乎没有遇到任何类型的错误,所以我认为它应该可以工作,但情况似乎并非如此。
此外,如果我稍后在我的代码中尝试在会话对象上使用 sendMessage 方法 -
let message = ["request": "fireLocalNotification"]
session.sendMessage(
message, replyHandler: { (replyMessage) -> Void in }) { (error) -> Void in
print(error.localizedDescription)
}
我收到一个错误代码“无法完成操作。(WCErrorDomain 错误 7004。)”,我查找了这意味着“WCErrorCodeSessionNotActivated”。这是我认为 activateSession 方法调用不正确的另一个原因。我什至尝试在发送消息之前直接运行该行的 activateSession 方法,但我仍然收到错误消息。如果有人可以帮助解释发生了什么,那就太好了,谢谢! :)
【问题讨论】:
-
此代码运行时是否有任何内容记录到系统日志中? (如果代码在设备上运行你可以使用Xcode查看,如果是模拟器你可以使用debug菜单打开模拟器的syslog)
-
你能修复它吗?,我也面临同样的错误。