gpt4 book ai didi

swift - 将重复数据添加到数组: error

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

我的问题是将重复数据添加到数组中

我的程序在手动刷新之前运行良好,但在手动刷新时重复添加到列表

当我检查打印时,数据被添加到双列表

打印结果

ARRAYLAR : ["EXAMPLE", "EXAMPLE"]

观看视频以更好地理解问题 VİDEO

override func viewDidLoad() {
super.viewDidLoad()

tableView.delegate = self
tableView.dataSource = self

getData()
}



@objc func getData() {


self.konuAdiArray.removeAll(keepingCapacity: false)
self.konuHedefTarihArray.removeAll(keepingCapacity: false)
self.konuTestArray.removeAll(keepingCapacity: false)
self.konuIDArray.removeAll(keepingCapacity: false)
self.veriGirisArray.removeAll(keepingCapacity: false)




Database.database().reference().child("users").child((Auth.auth().currentUser?.uid)!).child("dersler").child(gelenDersID!).child("konular").observe(DataEventType.childAdded) { (snapshot) in
let values = snapshot.value! as! NSDictionary


self.konuAdiArray.append(values["konuAdi"]as! String)
self.konuHedefTarihArray.append(values["konuHedefTarihi"]as! String)
self.konuTestArray.append(values["konuTestHedefi"]as! String)
self.veriGirisArray.append(values["veriGirisSoru"]as! String)
self.konuIDArray.append(snapshot.key)

print("ARRAYLAR : \(self.konuAdiArray)")

self.tableView.reloadData()

}

}

刷新栏按钮代码

@IBAction func refreshBarButton(_ sender: Any) {
getData()
}

最佳答案

您需要创建单独的函数来观察数据库的变化。当您调用 getData() 时,您的代码会调用两次数据库更改。因此,您可以再次订阅更改,这就是为什么我建议您创建单独的函数,例如 setDataBaseObserver(),您只需在 viewDidLoad 中调用一次该函数。如果您要更新数据,您应该发出网络请求或从不同的来源获取它们(而不是再次从数据库获取)。希望您正确理解我!

func setDataBaseObserver() {
Database.database().reference().child("users").child((Auth.auth().currentUser?.uid)!).child("dersler").child(gelenDersID!).child("konular").observe(DataEventType.childAdded) { (snapshot) in
let values = snapshot.value! as! NSDictionary
self.konuAdiArray.append(values["konuAdi"]as! String)
self.konuHedefTarihArray.append(values["konuHedefTarihi"]as! String)
self.konuTestArray.append(values["konuTestHedefi"]as! String)
self.veriGirisArray.append(values["veriGirisSoru"]as! String)
self.konuIDArray.append(snapshot.key)
print("ARRAYLAR : \(self.konuAdiArray)")
self.tableView.reloadData()
}
}

希望对您有帮助!

关于swift - 将重复数据添加到数组: error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096387/

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