gpt4 book ai didi

ios - NSUserDefaults 性能问题

转载 作者:行者123 更新时间:2023-11-28 18:09:09 24 4
gpt4 key购买 nike

我有一个游戏,我不断地保存用户进度。这是一款进度非常快的游戏,在游戏的某些时刻,大量用户进度可能每秒发生 6 次,这需要我在 NSUserDefaults 中存储一些进度变量并每秒同步 6 次。这在我的 iPhone6s 64gb 上运行良好,但我担心 iPhone4 16gb 可能无法处理。

不过我无法对其进行测试,因为模拟器对于此类事情并不十分准确,而且我没有速度较慢的设备。我似乎也无法在文档中找到有关 NSUserDefaults 性能报告的许多详细信息。有没有人对这个话题有任何了解?

我正在考虑将变量存储在我将在我的 .h 中定义的本地 NSDictionary 中,然后在 appWillResignActive 期间保存和同步 NSUserDefaults 一次,但我担心在崩溃、设备电池耗尽等情况下数据丢失. 我想我可以有一个 NSTimer 并每 5 秒左右保存一次数据,并在 appWillResignActive 上保存以在发生崩溃时将损失降到最低;我宁愿不必重新编写大量代码,尽管 NSUserDefaults 可能能够在较小的设备上处理得很好。

最佳答案

NSUserDefaults 只是内存中的一个 NSDictionary。只要您不是在每次设置值时都不必要地调用 synchronize,就不会有任何问题。操作系统将每隔一段时间保留内存中的表示。当然不是每秒多次。

因此,请尽可能多地使用 NSUserDefaults。仅在极少数情况下调用 synchronize,例如当您的应用变为非事件状态或进入后台时。

关于ios - NSUserDefaults 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37491685/

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