当我关闭我的应用程序并再次打开它时,我的plist没有更新

时间:2014-08-27 09:41:33

标签: ios uitableview plist

请, 我用一些键和值创建了一个plist, 然后我尝试将新项目添加到Plist并保存。
之后,我关闭我的应用程序并再次打开它,但我没有在我的表视图上看到我的新项目。 所以我不明白我的错在哪里!!!

请帮助!!!

NSArray *paths =  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];

NSString *plistPath = [documentsPath stringByAppendingString:@"MyProfile.plist"];
NSString *error=nil;
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:MyProfile format:NSPropertyListXMLFormat_v1_0 errorDescription:&error];

if (plistData){
    [plistData writeToFile:plistPath atomically:YES];
}
else{
    NSLog(@"Error in save Data:%@",error);

}

1 个答案:

答案 0 :(得分:0)

self.profileInfo = [[NSMutableDictionary alloc]initWithContentsOfFile:filePathPlist];

self.profileInfo中的值不可变,如果特定键的值是数组,则NSArray不是NSMutableArray

我们来谈谈下面的代码:

self.names = [self.profileInfo objectForKey:@"Names"];

虽然您将属性names声明为NSMutableArray,但您在此处获得的实例仍为NSArray。因此,您应该将mutableCopy方法发送到id以获取可变数组:

self.names = [[self.profileInfo objectForKey:@"Names"] mutableCopy];

顺便说一句:

您还可以使用self.profileInfo直接将[self.profileInfo writeToFile:path atomically:YES]保存到文件。