如何解决如何从在线和离线获取数据并在tableView swift中进行设置
我正在ApiApp上工作,该应用程序从api获取所有数据并在tableView中进行设置,现在我还将Realm设置为将该数据保存在Realm数据库中,因此当Internet不可用时,它将在tableView中显示脱机数据,并且当Internet处于打开状态时它也显示,但问题是如何将两个值都设置为一个,例如,当我设置cell.textLabel.text = holidayApi.name时,它显示在线api数据;当我设置cell.textLabel.text = holidayRealm.name时,它显示我是Realm数据,现在我想将其设置为:当无法使用Internet时,将其设置为cell.textLabel.text = holidayRealm.name(realmArray.count);当可以使用Internet时,将其设置为cell.textLabel.text = holidayApi.name( apiArray.count)获取在线数据,可以帮助我任何替代方法或解决方案
解决方法
我假设您知道何时可以使用互联网以及何时不可用。假设您在变量 isInternetAvailable 中拥有此信息,然后可以使用它来相应地填充tableView。
对于numberOfRowsInSection:
func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
if isInternetAvailable == true {
return realmArray.count
}
else
{
return apiArray.count
}
}
和cellForRowAt:
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
....
if isInternetAvailable == true {
cell.textLabel.text = holidayRealm.name
}
else
{
cell.textLabel.text = holidayApi.name
}
return cell
}
,
如果从API提取数据后尝试在本地保存数据,则始终可以使用Realm数据填充TableView,并在Realm Results上添加观察者以在获取领域数据后立即更新Tableview更新(只要有互联网可用)。
请参阅- https://realm.io/docs/swift/latest/#realm-notifications
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。