大家好
我已经将plist复制到了沙箱(FileManager)中,现在可以更改plist的值了。
我正在尝试这样做,但是没有用。
这是我的plist结构:
和我的片段
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"BlogList.plist"];
NSMutableDictionary *ressourceDico = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
NSArray *ressourceArray = [NSArray arrayWithArray:[ressourceDico objectForKey:@"BlogList"]];
for(int i = 0; i < [ressourceArray count] ; i++)
{
NSMutableDictionary *dico = [ressourceArray objectAtIndex:i];
if(![[dico objectForKey:@"isSaved"] boolValue] && [[dico objectForKey:@"identifier"] isEqualToString:identifier])
{
[dico setObject:[NSNumber numberWithBool:YES] forKey:@"isSaved"];
[dico writeToFile:plistPath atomically:YES];
}
}
最佳答案
为了“更新”其中的一部分,您不能仅将字典的一部分写入文件中。相反,您必须将整个字典写入文件中。
因此,我认为,您必须在遍历数组元素后发送writeToFile:atomically:
,但接收方可能是ressourceDico
而不是dico
。