我将 iPhone 中的数据字典传递给 WatchKitExtension。将接收到的 Dictionary 转换为两个不同的 item
数组的最佳方法是什么?
iPhone 数据
:
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 ", "加州"]
。
最佳答案
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)
}
}
关于ios - 将字典传递给两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36050899/