gpt4 book ai didi

arrays - 创建并迭代字典数组的数组

转载 作者:行者123 更新时间:2023-11-30 13:00:20 25 4
gpt4 key购买 nike

我已经成功创建了一个字典数组,我认为这是我的问题的最终解决方案(此处: Store CLLocation Manager Values in Device swift ),这是我想出的代码:

func arrayOfDictionaries() {
var offline:[[String:AnyObject]] = []
offline.append(["LATITUDE: ": userLocation.coordinate.latitude, "LONGITUDE: ": userLocation.coordinate.longitude, "SPEED: ": userLocation.speed])

NSUserDefaults().setObject(offline, forKey: "offLine")

if let offLinePositions = NSUserDefaults().arrayForKey("offLine") as? [[String:AnyObject]] {
//print(offLinePositions)


for item in offLinePositions {
print(item["LATITUDE: "]! as! NSNumber) // A, B
print(item["LONGITUDE: "]! as! NSNumber) // 19.99, 4.99
print(item["SPEED: "]! as! NSNumber) // 1, 2
}
}

}

但是当我测试应用程序时,我意识到数组中只存储了 1 个位置。所以我的想法是创建另一个数组并插入第一个数组中的值。我怎样才能做到这一点?

最佳答案

您正在创建 offline 数组,向其中追加一项,然后使用 this 覆盖用户默认值中的 offLine 数组。这就是为什么你里面只有一件元素。

首先,您需要尝试从用户默认值中获取现有数组,然后向其附加另一个项目并将其写回用户默认值:

func arrayOfDictionaries() {
let defaults = NSUserDefaults.standardUserDefaults()
var offline:[[String:AnyObject]]
if defaults.arrayForKey("offLine") != nil {
//Grab offLine array from user defaults
offline = defaults.arrayForKey("offLine") as! [[String:AnyObject]]
} else {
//Setting the offLine array for the first time
offline = []
}
offline.append(["LATITUDE: ": userLocation.coordinate.latitude, "LONGITUDE: ": userLocation.coordinate.longitude, "SPEED: ": userLocation.speed])

defaults.setObject(offline, forKey: "offLine")

if let offLinePositions = NSUserDefaults().arrayForKey("offLine") as? [[String:AnyObject]] {
//print(offLinePositions)


for item in offLinePositions {
print(item["LATITUDE: "]! as! NSNumber) // A, B
print(item["LONGITUDE: "]! as! NSNumber) // 19.99, 4.99
print(item["SPEED: "]! as! NSNumber) // 1, 2
}
}

}

关于arrays - 创建并迭代字典数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com