【发布时间】:2016-03-10 23:26:04
【问题描述】:
我正在使用WatchConnectivity 尝试将类型为NSManagedObject 的数据称为arrayOfOjects 发送到Watch。每个object 都有一个名为title 的字符串属性。
Watch 上的InterfaceController 加载并显示并清空表 - 因为数组为空,所以当用户请求数据时,它会在手机上使用didReceiveMessage 方法发送。
我不确定如何将字典数组添加到 objectsArray 以显示在 WKInterfaceTable 中。
有谁知道我如何将数据发送到手表以显示在表格中以进行更改并将它们与手机同步?
Apple Watch:
class ObjectsInterfaceController: WKInterfaceController, WCSessionDelegate {
var session : WCSession!
var objectsArray = [[AnyObject]]()
@IBOutlet var table: WKInterfaceTable!
@IBOutlet var titleLabel: WKInterfaceLabel!
func loadTableData() {
table.setNumberOfRows(self.objectsArray.count, withRowType: "CellRow")
if self.objectsArray.count > 0 {
for (index, name) in self.objectsArray.enumerate() {
let row = self.table.rowControllerAtIndex(index) as! CellRowController
row.objectCellLabel.setText(name.title)
}
}
}
override init() {
super.init()
loadTableData()
}
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
// Interface Objects
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
//Check if session is supported and Activate
if (WCSession.isSupported()) {
session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
}
}
//Swift
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
let value = message["Value"]
dispatch_async(dispatch_get_main_queue()) {
self.objectsArray.removeAll()
self.objectsArray.append(value! as! Array)
self.loadTableData()
}
//send a reply
replyHandler(["Value":"Yes"])
}
}
iPhone
我已经获取了所有对象并存储在数组中。
var objectsArray = [Objects]()
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
//send a reply
replyHandler(["Value": [objectsArray]])
}
我需要能够修改对象的属性并将更改保存在 iPhone 上,但 atm 我什至无法发送数据并在表中显示:( 我已经能够在字典中发送简单的字符串值设备,但不是数组或实际数据。
【问题讨论】:
-
您不能在(上下文、线程或)设备之间共享
NSManagedObject。 -
您能否发布将姓名发送到手表的 iOS 应用程序的代码?
标签: ios core-data watchkit watchos-2 watchconnectivity