ios - 将来自不同 viewController 的字符串保存到 plist 而不会覆盖旧的

标签 ios objective-c string save plist

我想将一些来自不同 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);

问题:

  1. 我该如何处理这个问题,我的 plist 中的指针会转到第二个位置,这样我就不会覆盖我的旧数据?

  2. 我只想保存来自三个不同 ViewController 的字符串(日期和一些文本),plist 是执行此操作的好方法还是我应该使用核心数据?

最佳答案

我建议你使用 core data 它真的很简单,可以避免你编写代码来管理保存、日期和奇怪的逻辑。它还为您提供有用的功能,例如:

  • 托管对象更改或保存以允许您更新 UI 时的通知
  • 一个内置类 (NSFetchedResultController),可帮助您在 tableView 上高效地显示数据

为避免与核心数据相关的样板代码,请尝试查看 magicalrecord

关于ios - 将来自不同 viewController 的字符串保存到 plist 而不会覆盖旧的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213312/

相关文章:

ios - CLLocation速度返回-1.0

ios - Google Maps SDK 在 ItunesConnect 测试而非 Xcode 上崩溃

javascript - 使用特殊字符对 UTF-8 中的单词中的句子进行标记

ios - 用换行符替换多个空格,但保留单个空格

ios - 在控件样式 MPMovieControlStyleEmbedded 中触摸全屏按钮后将 View 添加到 MPMoviePlayerController View

ios - 播放直播新闻 - swift 3

ios - 在 ios 6 和 ios 7 中未收到推送通知

ios - 断点条件错误

objective-c - 如何计算iOS中两个日期之间的时差(以分钟为单位)

string - Win32开发-C++中字符串相关的数据类型