簡體   English   中英

比較包含自定義Swift對象的兩個數組之間的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM