我想将一些来自不同 ViewController 的字符串保存到一个 plist 中。 目前,我的 VC1 的 viewDidLoad 将字符串保存到 plist 中,当我调用 VC2 时,我的 plist 已被 VC2 中的字符串覆盖。
我在 VC1 和 VC2 中的 viewDidLoad 是相等的,像这样:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
NSArray *array = [NSArray arrayWithObjects:dateString , nil ];
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentFolder = [path objectAtIndex:0];
NSString *filePath = [documentFolder stringByAppendingFormat:@"list.plist"];
//save to array
[array writeToFile:filePath atomically:YES];
NSLog(@"file Stored at %@",filePath);
问题:
我该如何处理这个问题,我的 plist 中的指针会转到第二个位置,这样我就不会覆盖我的旧数据?
我只想保存来自三个不同 ViewController 的字符串(日期和一些文本),plist 是执行此操作的好方法还是我应该使用核心数据?
最佳答案
我建议你使用 core data 它真的很简单,可以避免你编写代码来管理保存、日期和奇怪的逻辑。它还为您提供有用的功能,例如:
- 托管对象更改或保存以允许您更新 UI 时的通知
- 一个内置类 (NSFetchedResultController),可帮助您在 tableView 上高效地显示数据
为避免与核心数据相关的样板代码,请尝试查看 magicalrecord
关于ios - 将来自不同 viewController 的字符串保存到 plist 而不会覆盖旧的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213312/