WKInterfaceTable没有填充可编码数据

时间:2018-11-19 03:20:59

标签: swift codable watchconnectivity wcsession wkinterfacetable

我的JSON对象没有发送到我的WKInterfaceTable。

UITableView正确填充。最后一步是填充WKInterfaceTable。该代码未在Xcode中引发错误,但由于强制转换失败,导致运行时崩溃。

编辑:感谢Dale,我修复了一个错误处理行,因此运行时消息消失了,但是仍然存在相同的问题。

  

打印已加载数据:可选(<5b7b2273 7065616b 6572223a 224a6f68 6e222c22 7469746c 65223a22 486f7720 61726520 796f753f 222c2274 6f223a22 323a3030 222c2266 726f6d22 3a22313a 3030227d ...>

    override func willActivate() {
         super.willActivate()

        if(WCSession.default.isReachable) {

            let message = ["getMsgData" : [:]]

            WCSession.default.sendMessage(message, replyHandler:

                { (result) -> Void in

                    print("Requesting data from phone")
                    print("printing message: \(message)")
                    print("printing messageObjects: \(self.messageObjects)")

                    if result["messageData"] != nil { 
                        let loadedData = result["messageData"]

                        NSKeyedUnarchiver.setClass(MessageObject.self, forClassName: "MessageObject")

                        do {
                            let loadedPerson = try? JSONDecoder().decode(MessageObject.self, from: loadedData as! Data)

                            self.messageObjects = [loadedPerson]
                            self.progTable.setNumberOfRows(self.messageObjects.count, withRowType: "MsgRowController")

               //code...
    }

1 个答案:

答案 0 :(得分:0)

在更新到使用Codable协议的过程中,我没有意识到我必须删除NSKeyedArchiver / Unarchiver的先前实例。