在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
}
}
还是应该将UserDefaults
中viewWillAppear
中的值保存在cellForRow
中?
请帮助我了解这两种选择对内存的影响。
答案 0 :(得分:2)
根据苹果公司
在运行时,您使用UserDefaults对象读取默认值, 您的应用使用的是用户默认数据库。 UserDefaults缓存 避免每次打开用户默认数据库的信息 时间需要默认值。
您应该可以在cellForRow中检索信息,因为它可能位于内存中的一个字典中(假设),由您提供的密钥获取,但是对于vadian来说,您可以将其放入模型或属性并消除假设。
此外,请考虑是否该数据将被另一个进程更改,以及是否需要观察UserDefaults键。