gpt4 book ai didi

arrays - 从 Firebase 读取 JSON 并以所有相同值的数组结束 [Swift]

转载 作者:行者123 更新时间:2023-11-28 15:30:57 24 4
gpt4 key购买 nike

好吧,我有一个 Firebase 格式的 JSON 数据库(至少下面是它的一个片段)

   "Trips" : {
"-KnH34F_WZYNHMsTzj0X" : {
"Distance" : 500,
"Transport" : "Walk",
"TripName" : "Work"
},
"-KnH3_WnQaD3piXI7oFf" : {
"Distance" : 900,
"Transport" : "Bike",
"TripName" : "Test"
},
"-KnH7yi4bl2oM6LobPQv" : {
"Distance" : 50,
"Transport" : "Bike",
"TripName" : "Test"
},

然后我使用以下代码筛选数据并将其 append 到 Trip 对象数组中。

 Database.database().reference().child("Users").child(user).child("Trips").observe(DataEventType.childAdded, with: { (snapshot) in

let dict = snapshot.value as? NSDictionary

if dict?["Distance"] != nil {
self.commuteBuilder.distance = dict?["Distance"] as? Double
}
if dict?["TripName"] != nil {
self.commuteBuilder.title = dict?["TripName"] as? String
}
if dict?["Transport"] != nil {
self.commuteBuilder.transportType = (dict?["Transport"] as? String)
}

// if self.commuteBuilder.isFilled(){

self.commuteArray.append(self.commuteBuilder)
print("Append")


self.commuteTableView.reloadData()
// }


})

当我设置断点时,新的 commuteBuilder 对象会正确填充数据,但一旦 append ,commuteArray 中的每个值最终都会与添加到其中的最后一个对象具有相同的数据。

所以在上面的例子中,数组最终会包含 3 个条目,但它们都有 TripName: Test 和 Distance: 50 以及 Transport "Bike"

我也知道代码乱七八糟,我一直在努力解决它。

最佳答案

self.commuteArray.append(self.commuteBuilder)

我认为这是错误的地方。创建一个临时的 commuteBuilder 对象。将检索到的数据放入该临时对象中。将该临时对象 append 到您的数组。

关于arrays - 从 Firebase 读取 JSON 并以所有相同值的数组结束 [Swift],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44739168/

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