我是一位全新的iOS开发人员,虽然我熟悉C编程语言和面向对象编程范例,但他之前没有使用过Objective-C的经验。
首先,我按照Start Developing iOS Apps Today教程开发了一个基本待办事项列表应用,其中每个项目都是存储在NSMutableString
中的NSMutableArray
对象。我的应用正常运行。但是,当我退出并在模拟器上重新启动应用程序时,我的待办事项列表消失了。显然这是因为我没有办法让数组在一段时间内保持不变。
Here使用NSUserDefaults
解决了这个问题,但我发现它不是一个有效的解决方案,主要是因为NSUserDefaults
是专门用于存储用户的偏好并且性能非常差。因此,我正在寻找另一种简单直接的解决方案,以使我的应用更专业。尽管如此,我在理解放置代码的地方(即哪些类和方法)方面遇到了一些麻烦。
提前谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
即使有像CoreData
这样的解决方案专门用于解决此问题,您可能需要更轻松,更快速的实现,但仍然比在用户默认值中保存垃圾更清晰
NSMutableArray符合NSCoding标准,因此只要它包含的项目符合 NSCoding ,您就可以轻松地将其存储在文件中并使用方法将其恢复回来
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
- (NSArray *)initWithContentsOfFile:(NSString *)aPath
请记住,如果您要存储基本类型(如布尔值),则可能会遇到问题,因此我建议使用NSNumber保存它们。