我将数据字典从iPhone传递给WatchKitExtension。将接收到的Dictionary转换为两个不同的item
数组的最佳方法是什么?
iPhone Data
:
let applicationDict = [“Item1” : data.item1, “Item2” : data.item2]
let transfer = WCSession.defaultSession().transferUserInfo(applicationDict)
观看ExtensionDelegate
:
var incomingData = Array<Dictionary<String, String>>()
func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
if let item1Value = userInfo[“Item1”] as? String, let item2Value = userInfo[“Item2”] as? String {
incomingData.append([“Item1” : item1Value , “Item2” : item2Value])
// use incomingData to make two item arrays
}
}
我已经看过其他一些看似相似的问题了,看起来像是componentArray = Array(incomingData.values)
的问题,但是我无法让它发挥作用。
实施例
Item1
是城市。 Item2
是州。因此Item1
数组为["Chicago", "San Francisco"]
,Item2
数组为["Illinois", "California"]
。
答案 0 :(得分:2)
incomingData
是一系列词典。我不相信这是你真正想要的。如果您在每次转帐时都通过了城市/州对,那么这应该适用于ExtensionDelegate
。
var cities = [String]()
var states = [String]()
func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
if let item1Value = userInfo["Item1"] as? String, let item2Value = userInfo["Item2"] as? String {
cities.append(item1Value)
states.append(item2Value)
}
}