我在使用WatchOS 2.1和iOS 9上的WatchConnectivity框架時遇到了麻煩。 我正在使用transferUserInfo()將數據從iOS應用程序發送到Watch,並且工作正常。問題在於:當我在用戶按下手錶視圖中的按鈕後嘗試發送更新時,通信只能偶爾進行。例如,它通常第一次工作,其他時間看起來像是消息丟失。 我試過不同的解決方案(sendMessage,updateContext,ecc),但我總是遇到同樣的問題。誰能幫我? 下面的代碼:WatchConnectivity偶爾會工作
//在觀察側:
@IBAction func completeButtonPressed() {
if let index = isActivityTitled(activityTitle, inArray: todayActivities) {
activityCompleted = !activityCompleted
todayActivities[index].completed = activityCompleted
}
if self.activityCompleted == false {
self.completeButton.setBackgroundImage(UIImage(named: "completedButton"))
self.completeButton.setTitle("COMPLETA")
} else {
self.completeButton.setBackgroundImage(UIImage(named: "rectButtonGray"))
self.completeButton.setTitle("COMPLETATO")
}
if self.session != nil {
session.transferUserInfo(["WatchUpdatedActivityTitle":self.activityTitle])
}
}
//在iOS方面:(我處理在AppDelegate的回調)
func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
print("Message From Watch:")
print(userInfo["WatchUpdatedActivityTitle"])
if let actTitle = userInfo["WatchUpdatedActivityTitle"] {
self.activitiesList = ActivitiesList.sharedActivitiesList
let updatedActivity = self.activitiesList.getActivityTitled(actTitle as! String)
if updatedActivity?.completed == false {
updatedActivity?.completed! = true
} else {
updatedActivity?.completed! = false
}
self.activitiesList.updateActivity(updatedActivity!, withReorder: true)
dispatch_async(dispatch_get_main_queue()) {
NSNotificationCenter.defaultCenter().postNotificationName("reloadTableViews", object: nil)
}
}
}
希望能解決問題很快, 非常感謝。
聲音就像在操作系統中可能存在一個錯誤。可能最好向Apple提交一份附帶示例項目的bug報告。很好,如果你可以在這裏報告雷達號碼! – ccjensen
您是否在watch os端進行了調試,並確定'session.transferUserInfo'實際上被調用了嗎?你確定self.activityTitle不是零嗎? –