【发布时间】:2015-09-29 18:45:01
【问题描述】:
我有一个 WatchKit table,我需要用我收到的数据(从 iOS 到 WatchKit)填充它。我不知道如何解开Dictionary 中的数据以供table 使用。
我在 WatchKit 中有数据InterfaceController.swift
func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
let dic3 = userInfo["TColor"] as? String
let dic4 = userInfo["Match"] as? String
dispatch_async(dispatch_get_main_queue()) {
//
}
}
WatchKit Event.swift(主对象的子类)
class Event {
var eventTColor:String
var eventMatch:String
init(dataDictionary:Dictionary<String,String>) {
eventTColor = dataDictionary["TColor"]!
eventMatch = dataDictionary["Match"]!
}
class func newEvent(dataDictionary:Dictionary<String,String>) -> Event {
return Event(dataDictionary: dataDictionary)
}
class func eventsList() -> [Event] {
var array = [Event]()
let dataPath = // Not sure what to do here
let data = // Not sure what to do here either
for e in data as! [Dictionary<String, String>] {
let event = Event(dataDictionary: e)
array.append(event)
}
return array
}
}
我不知道在我缺少的函数class func eventsList() -> [Event] 中要做什么。
我需要从didReceiveUserInfo 收到的Dictionary 获取信息。
或者也许有一些更好/其他的方法来解决这个问题?将根据需要发布任何额外的代码。
编辑:到目前为止,这就是我正在尝试的 didFInishUserInfoTransfer
func session(session: WCSession, didFinishUserInfoTransfer userInfoTransfer: WCSessionUserInfoTransfer, error: NSError?) {
if let someError = error {
print("error on didFinishUserInfoTransfer: %@", someError)
} else {
let eventsList = Event.eventsListFromValues(receivedData)
NSLog("Events List: %@", eventsList)
}
}
func doTable() {
eventsListSO = Event.eventsListFromValues(receivedData)
rowTable.setNumberOfRows(eventsListSO.count, withRowType: "rows")
NSLog("Row count: %@", eventsListSO.count)
for var i = 0; i < self.rowTable.numberOfRows; i++ {
let row = rowTable.rowControllerAtIndex(i) as? TableRowController
print("Row")
for eventm in eventsListSO {
row!.mLabel.setText(eventm.eventMatch)
NSLog("SetupTableM: %@", eventm.eventMatch)
}
}
}
【问题讨论】:
标签: ios swift uitableview nsdictionary watchkit