关于objective C:NSUserDefaults 和节省大小

NSUserDefaults and saving size

我有一个应用程序可以在用户开车时跟踪他们。它使用 CLLocationManager 并且每次调用 didUpdateToLocation 时我都会保存 CLLocation 点。

大约 25 英里的行程会产生大约 1200 个点。

到目前为止,我将这个点数组保存到用户默认值以进行测试。我应该查看 CoreData 以正确保存此信息吗?或者可能只是将所有内容都写到一个文件中?

我担心的是 NSUserDefaults 可以"最大输出"吗?我可能有数百个保存的数组,每个数组都有数千个 CLLocation 点。

任何建议将不胜感激。


不管用户默认的大小,它都不是为了这个目的。顾名思义,它应该用于保存标志和变量,以自定义或保存用户的会话细节。尽管核心数据确实为此提供了一个优雅的解决方案并且是最有效的解决方案。如果您不想处理此问题,则必须创建自己的文件并将其保存在那里。这也很简单。但是,如果您计划扩展可能性,例如多用户、不同的运行、许多属性等,我建议 coredata,因为它是一个真正的数据库,如方法。

http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started

编辑:用户的默认大小没有限制。不过,如果您浏览苹果文档,您会发现它不符合您描述的目的。

http://www.iphonedevsdk.com/forum/iphone-sdk-development/38091-size-limitations-with-nsuserdefaults.html