我正在寻找一种比NSUserDefaults更快的保存用户首选项的方法。我发现,如果该应用在写入NSUserDefaults的大约10秒钟内被杀死,它将不会被永久保存。我使用默认值保存自定义铃声的路径,自定义图像的路径, map 坐标,以及基本上只是用户定义的首选项。使用核心数据是更好的选择吗? SQLite?最快,最轻巧的是什么?

最佳答案

您需要确保调用“同步”以立即保存数据。

[[NSUserDefaults standardUserDefaults] synchronize];

从苹果的class reference:



要回答第二个问题,这实际上取决于您要存储多少数据。 NSUserDefaults旨在存储少量数据(用于首选项),例如拨动开关的状态等。您可以在此处存储图像和铃声的路径,但是并不建议这样做。我的意思是您可以,但可能不应该。

如果您计划存储许多路径,那么核心数据是一种更好的方法,因为它具有很好的可扩展性和良好的性能。因此,总的来说,如果您需要存储大量数据,用户核心数据,或者作为另一种选择,则将路径存储在documents目录中的plist中。

关于ios - 如果应用程序在10秒内被杀死,NSUserDefaults将丢失新保存的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13980968/

10-11 14:52
查看更多