NSUserDefaults方法中从cellForRow(at:IndexPath检索数据是内存密集型的吗?代码如下:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  let recentFavorite = UserDefaults.standard.string("recentlyStoredFavorite")
  if self.favorite == recentFavorite {
    cell.imgForFavorite = self.imgForFavorite
  }
}

或者我应该保存UserDefaultsviewWillAppear的值并在cellForRow中使用它吗?
请帮助我理解这两种选择的记忆含义。

最佳答案

苹果公司称
在运行时,使用UserDefaults对象读取
你的应用程序从用户的默认数据库中使用。用户默认缓存
避免每次都必须打开用户默认数据库的信息
需要默认值的时间。
您应该“确定”在cellForRow中检索信息,因为它可能位于内存中的字典(假设)中,由您提供的密钥获取,但是对于vadian来说,您可以将其放在模型或属性中,并消除假设。
另外,考虑该数据是否会被另一个进程更改,以及是否需要遵守UserDefaults键。

关于ios - 在Swift中访问cellForRow(at:IndexPath)中的NSUserDefaults,内存使用情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52612704/

10-12 14:39