【发布时间】:2013-12-15 23:09:06
【问题描述】:
我正在将这些数据写入 plist 文件,但每次我写入时,它都会替换之前的任何内容。即,当我重新加载页面时,它会覆盖我之前拥有的任何数据。我怎样才能使以前的数据保持不变,或者有人可以指出我做错了什么?
- (IBAction)buttonClickSave:(id)sender;
{
pathList=[self getFilePath];
if(![[NSFileManager defaultManager] fileExistsAtPath:pathList])
{
[[NSFileManager defaultManager] copyItemAtPath:[[NSBundle mainBundle] pathForResource:@"adresses" ofType:@"plist" ]toPath:pathList error:nil];
}
NSString *Name = @"Names";
NSString *email = @"email";
NSString *phone = @"phone";
NSMutableArray *values = [[NSMutableArray alloc] initWithObjects:Name, email, phone, nil];
NSMutableArray *keys = [[NSMutableArray alloc] initWithObjects:kTitleKey, kEmail, kPhone, nil];
NSDictionary *dict = [[NSDictionary alloc] initWithObjects:values forKeys:keys];
[self.arraysData addObject:dict];
[self.arraysData writeToFile:pathList atomically:YES];
}
【问题讨论】:
-
首先从 plist 中读取数据并在其上追加新数据,然后写入 plist。
-
Plist 不是保存或更新数据的正确方法。它用于静态数据。最好为此使用
sqlite。否则,您将不得不每次都重新创建您的 plist。
标签: ios iphone nsdictionary plist