0

フレームワークを使用して、文字列値WatchConnectivityの配列をwatchItems電話からApple Watchに送信しています。送信された辞書からを追加し、ウォッチでwatchItems呼び出される配列に追加して、で使用します。itemsWKInterfaceTable

ラベルのテキストをtheItemに設定すると、次の行でエラーが発生しています。

for (index, theItem) in self.items.enumerate() {
    let row = self.table.rowControllerAtIndex(index) as! CellRowController
    row.bookmarksCellLabel.setText(theItem)
 }

Heresは私がやっていることの完全な説明です。

iPhone

self.itemsは の配列でNSManagedObjectあり、各アイテムにはtitle文字列であるというプロパティがあります。そこで、配列をループして、objectsすべての文字列値を という配列に追加しますwatchItems

func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {

    var watchItems = [""]

    for item in self.items {
       watchItems.append(item.title)
    }

    //send a reply
    replyHandler( [ "Value" : [watchItems]])

}

アップルウォッチ

ここでは、受信したメッセージ ディクショナリの watchItems 配列をウォッチの配列に追加しますitemswatchItems配列は文字列値の配列であり、時計の配列もそうですitems

var items = [String]()

@IBAction func refreshAction() {
    let messageToSend = ["Value":"Hello iPhone"]
    session.sendMessage(messageToSend, replyHandler: { replyMessage in

         let value = replyMessage["Value"] as! String
         self.titleLabel.setText(value)

        }, errorHandler: {error in
            // catch any errors here
            print(error)
    })
}


func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {

    let value = message["Value"] as! [String]

    dispatch_async(dispatch_get_main_queue()) {
        self.items.removeAll()
        self.items.append(value)
        self.loadTableData()
    }

    //send a reply
    replyHandler(["Value":"Yes"])

} 

WKInterfaceTableアイテム配列の各アイテムとしてラベルを再ロードして設定する関数。

func loadTableData() {
    table.setNumberOfRows(self.items.count, withRowType: "CellRow")
    if self.items.count > 0 {
        for (index, theItem) in self.items.enumerate() {
            let row = self.table.rowControllerAtIndex(index) as! CellRowController
            row.cellLabel.setText(theItem)
        }
     }
}

に文字列値を追加するとエラーが発生しますcellLabel。私がどこで間違っているのか誰か知っていますか?

4

0 に答える 0