ウォッチ コネクティビティを使用して、携帯電話からウォッチに複数の「アプリケーション アップデート」(配列からの複数の異なる値など) を送信するにはどうすればよいですか?
アプリケーションの更新はnumberItem
、テーブル ビューで選択したセルから値を送信するのに成功しましたが、選択したセル配列からもユーザー ID 値を送信したいと考えています。
現在、それは 1 つの値のみを認識し、他の値を更新しませんが、ラベル テキストとして「再試行してください」と表示します。
他の追加の値 (ユーザー ID やユーザー名など) について、2 つ以上のアプリケーション更新を送信するにはどうすればよいですか。
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let numberItem = number[indexPath.row]
print("tableview select #:")
print(numberItem)
do {
try WatchSessionManager.sharedManager.updateApplicationContext(["number" : numberItem])
} catch {
let alertController = UIAlertController(title: "Oops!", message: "Looks like your \(numberItem) got stuck on the way! Please send again!", preferredStyle: .Alert)
presentViewController(alertController, animated: true, completion: nil)
}
let uidItem = 15
//let uidDict = ["uidValue":uidItem]
print("the send UID is")
//print(uidItem)
do {
try WatchSessionManager.sharedManager.updateApplicationContext(["uidValue" : uidItem])
} catch {
let alertController = UIAlertController(title: "Oops!", message: "Looks like your \(uidItem) got stuck on the way! Please send again!", preferredStyle: .Alert)
presentViewController(alertController, animated: true, completion: nil)
}
}
私の datasource.swift ファイルは次のとおりです。
enum Item {
case Number(String)
case uidValue(String)
case Unknown
}
init(data: [String : AnyObject]) {
if let numberItem = data["number"] as? String {
item = Item.Number(numberItem)
print("enum item is")
print(numberItem)
} else if let uidItem = data["uidValue"] as? String {
item = Item.uidValue(uidItem)
print("enum item is")
print(uidItem)
} else {
item = Item.Unknown
}
}
時計のインターフェイス コントローラー (データ ラベルに接続) には次のものが含まれます。
func dataSourceDidUpdate(dataSource: DataSource) {
switch dataSource.item {
// the first application update- commented out to try the 2nd update
//case .Number(let numberItem):
// titleLabel.setText(numberItem)
// print(numberItem)
// the second application update
case .uidValue(let uidItem):
uidLabel.setText(uidItem)
print(uidItem)
case .Unknown:
nidLabel.setText("please retry")
default:
print("default")
}
}