如何让NSMutableArray随着时间的推移而持续存在?

时间:2015-06-05 08:42:15

标签: ios objective-c

我是一位全新的iOS开发人员,虽然我熟悉C编程语言和面向对象编程范例,但他之前没有使用过Objective-C的经验。

首先,我按照Start Developing iOS Apps Today教程开发了一个基本待办事项列表应用,其中每个项目都是存储在NSMutableString中的NSMutableArray对象。我的应用正常运行。但是,当我退出并在模拟器上重新启动应用程序时,我的待办事项列表消失了。显然这是因为我没有办法让数组在一段时间内保持不变。

Here使用NSUserDefaults解决了这个问题,但我发现它不是一个有效的解决方案,主要是因为NSUserDefaults是专门用于存储用户的偏好并且性能非常差。因此,我正在寻找另一种简单直接的解决方案,以使我的应用更专业。尽管如此,我在理解放置代码的地方(即哪些类和方法)方面遇到了一些麻烦。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

为了使数据持续存在,我建议您查看NSCodingCoreData。它们都易于使用和实现。

NSCoding example

CoreData example

答案 1 :(得分:0)

即使有像CoreData这样的解决方案专门用于解决此问题,您可能需要更轻松,更快速的实现,但仍然比在用户默认值中保存垃圾更清晰

NSMutableArray符合NSCoding标准,因此只要它包含的项目符合 NSCoding ,您就可以轻松地将其存储在文件中并使用方法将其恢复回来

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
- (NSArray *)initWithContentsOfFile:(NSString *)aPath

请记住,如果您要存储基本类型(如布尔值),则可能会遇到问题,因此我建议使用NSNumber保存它们。