将字典传递给两个数组
Turning Dictionary passed into two Arrays
我将 iPhone 中的数据字典传递给 WatchKitExtension。将接收到的字典转换为两个不同的 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"]
.
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)
}
}
我将 iPhone 中的数据字典传递给 WatchKitExtension。将接收到的字典转换为两个不同的 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"]
.
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)
}
}