Tom*_*voy 6 core-data nsuserdefaults ios
我正在寻找一种比NSUserDefaults更快的方式来保存用户首选项.我发现,如果应用程序在写入NSUserDefaults的大约10秒内被杀死,则不会永久保存.我使用默认值来保存自定义铃声的路径,自定义图像的路径,地图坐标,以及基本上只是用户定义的首选项.使用核心数据是更好的选择吗?SQLite的?什么被认为是最快和最轻的?
Mic*_*lum 16
您需要确保调用synchronize以立即保存数据.
[[NSUserDefaults standardUserDefaults] synchronize];
Run Code Online (Sandbox Code Playgroud)
来自Apple的课程参考:
因为此方法是定期自动调用的,所以只有在您无法等待自动同步时(例如,如果您的应用程序即将退出)或者您希望将用户默认值更新为磁盘上的内容,请使用此方法你没有做任何改变.
回答第二个问题,这实际上取决于您想要存储多少数据.NSUserDefaults旨在存储非常少量的数据(用于首选项),如切换开关的状态等.您可以在这里存储图像和铃声的路径,但这不是完全可取的.我的意思是你可以,但可能不应该.
如果您计划存储许多这些路径,核心数据是一种更好的方法,因为它非常可扩展且性能非常好.总的来说,如果你需要存储大量数据,用户核心数据,或者作为另一种选择,存储文档目录中plist中的路径.