微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从在线和离线获取数据并在tableView swift中进行设置

如何解决如何从在线和离线获取数据并在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 举报,一经查实,本站将立刻删除。