请,
我用一些键和值创建了一个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);
}
答案 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]
保存到文件。