以前以下の質問でWatchConnectivity、transferUserInfoでapple watchとiPhoneのデータのやり取りについて質問しました。
https://teratail.com/questions/148670
その際できなかった原因は、以下の様にtransferUserInfoで分けて送信していたからの様でした。
Swift
1WCSession.default.transferUserInfo(["titles_watch": List_watch]) 2WCSession.default.transferUserInfo(["Colors_watch": Colors])
それを以下の様にまとめて送るとうまくいきました。
Swift
1WCSession.default.transferUserInfo(["titles_watch": List_watch, "Colors_watch": Colors])
ただそれぞれ別で送りたい場合が出てきました。以下の様にするとデータの送信時に落ちてしまいます。因みにWatch→iPhoneです。
Swift
1override func awake(withContext context: Any?) { 2 super.awake(withContext: context) 3 4 /********************WatchConnectivity***********************/ 5 if (WCSession.isSupported()) { 6 // デバイスが Watch Connectivity に対応してる場合 7 let session = WCSession.default 8 session.delegate = self 9 session.activate() 10 } 11 12 WCSession.default.addObserver(self, 13 forKeyPath: "hasContentPending", 14 options: [], 15 context: nil) 16 17 WCSession.default.transferUserInfo(["time_start":true] ) 18 19 /********************WatchConnectivity***********************/ 20} 21 22 23@IBAction func Stop() { 24 WCSession.default.transferUserInfo(["time_start":false] ) //ここで落ちる Thread 12: EXC_BAD_ACCESS 25 }
以上の様に分けて送りたいです。しかしこれで落ちてしまうのは分けて送ったからだと思うのですが、前回以上の様に分けて送った際にはエラーは出ずにUserInfoに値が入らなかっただけなので、他に原因が?という気もしないではないです。
ただとにかくやりたい事としては以上の様に同じkeyのものを別々の所から送れる様にしたいです。。。
あなたの回答
tips
プレビュー