gpt4 book ai didi

iOS - setObject 与同步

转载 作者:搜寻专家 更新时间:2023-10-31 08:21:33 26 4
gpt4 key购买 nike

新手问题。如果我将一个对象设置到 NSUserDefault 中,我是否还需要同步以确保该对象永久返回到 NSUserDefault 数据库中?我想我想问的是,“setobject”是将对象永久性地放回数据库中,还是放入需要同步以确保永久性存储的临时存储中?

例如://下面我在添加一行数据后在 NSUserDefaults 中放置了一个新的列表副本

userDefaults.setObject(newMutableList, forKey: "itemList")

//我是否还需要立即同步以确保数据库永久更新?

userDefaults.synchronize() 

我的代码在没有同步的情况下工作,这意味着我不需要它。但我想确保跳过同步的使用不会在未来的其他场景中导致问题。

提前致谢。

最佳答案

在 iOS 7 及更早版本上:

当您调用 -setObject:forKey: 时,NSUserDefaults 会在未来大约 10 秒内自行安排同步操作。发生这种情况时,到那时为止的所有内容都会保存到持久存储中。这里的想法是,您可以自由地使用 set 和 get 方法,而无需支付每次访问磁盘的显着性能成本。

在 iOS 8 上,NSUserDefaults 的工作方式不同,延迟是几毫秒,而不是 10 秒,所以 -synchronize 几乎没有用。

在 iOS 12 上,-synchronize 的所有剩余使用都是不必要的。请注意,可能仍有应用想要调用它的情况,因为它们支持 iOS 11 及更早版本。

关于iOS - setObject 与同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com