ios - 将字典传递给两个数组

标签 ios swift nsarray nsdictionary

我将 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/

相关文章:

iphone - 当应用程序重新启动时取消由 applicationDidEnterBackground 启动的任务

ios - 使用 coretext,在绘制图像和在 ios6 中,我得到 CTFrame 空值

ios - "This certificate has an invalid issuer"问题未解决

swift - 隐藏表格中的特定单元格

ios - NSArray 的子数组的排序 NSIndexSet

ios - 有什么方法可以创建自定义 VoiceOver 手势吗?

ios - 是否可以在没有源代码的情况下构建 .app 文件?如果我们只是在 iOS 设备上安装了应用程序并且可以提取 .ipa

swift - UIView子类: star-shaped button in a table view doesn't react accordingly when touched

ios - 使用空值对 NSArray、NSComparator block 与 NSSortDescriptor 进行排序

ios - 有没有更好的方法来展平 NSDictionaries 的 NSArray?