![](/img/trans.png)
[英]Compare two arrays containing objects including other objects, arrays, etc
[英]Compare data between two Arrays containing custom Swift Objects
我有一些通過API接收到的數據,這些數據將JSON返回給我。 我知道我可以提取它並將相關信息從API存儲到我的iOS應用中。 但僅在應用程序運行時。 IE瀏覽器我還沒有實現如何將從API獲取的信息存儲到UserDefalults中。 使用此功能時,我遇到了一個問題。
我有兩個可以跟蹤數據的數組。 第一個數組是獲取數據后要存儲在UserDefaults中的數組。 這個稱為“貸方”,保留LenderData。第二個數組是我的臨時數組。 它包含相同類型的對象,這是我要使用API中的數據填充的對象,然后將其與我現有的數組“貸方”進行比較。
我想檢查“貸方”數組是否包含與我在“ lendersTemp”數組中查看的對象具有相同ID的任何對象。 如果出借方數組不包含任何具有我們當前正在查看的tempLender ID的LederData對象,則將tempLender添加到出借方數組中。 我將如何去做呢?
我當前的(無效)解決方案如下:
var lenders = [LenderData]()
var lendersTemp = [LenderData]()
...
// Get JSON DATA
...
for tempLender in self.lendersTemp {
if !self.lenders.contains(where: {$0.id == tempLender.id}) {
self.lenders.append(tempLender)
}
}
編輯:我的看法確實加載方法:
var lenders = [LenderData]()
var lendersTemp = [LenderData]()
override func viewDidLoad() {
super.viewDidLoad()
downloadJSON {
self.myTableView.reloadData()
}
self.myTableView.rowHeight = 90
myTableView.delegate = self
myTableView.dataSource = self
}
我在一些幫助下找到了答案! 這就是我對自己問題的回答!
我的問題是從API獲取數據是使用asyc方法完成的。 在TableView上調用reload方法后,我嘗試進行比較。 因此,在調用reloadData()
之后,我沒有填充tableview要從中獲取數據的數組,因此,實際上我的tableview和比較算法似乎沒有用,實際上是這樣!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.