我收到的一些数据是通过API将JSON返回给我的。我知道我可以获取它并将API中的相关信息存储到我的iOS应用程序中。但只有在应用程序运行时。 I.E.我没有实现YET如何将从API获取的信息存储到UserDefalults中。使用此功能我遇到了一个问题。
我有两个数据跟踪我的数据。第一个数组是我在获取数据时要存储在UserDefaults中的数组。这个被称为“贷方”并保留LenderData 第二个数组是我的临时数组。它包含相同类型的对象,这是我想用API中的数据填充,然后与我现有的数组“贷方”进行比较。
我想检查“lenders”数组是否包含任何与我在“lendersTemp”数组中查看的对象具有相同ID的对象。如果lenders Array不包含任何具有我们当前正在查看的tempLender的id的LederData对象,我们将tempLender添加到lenders数组中。我该怎么做呢?
我目前的(非工作)解决方案如下:
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
}
答案 0 :(得分:0)
我找到了一些帮助!所以这是我对自己问题的回答!
我的问题是从我的API获取数据是使用asyc方法完成的。在我的TableView上调用reload方法后,我尝试进行比较。因此,在调用reloadData()
之后,我没有填充tableview从中获取数据的数组,因此看起来我的tableview和比较算法没有用,实际上它确实有效!