大家好

我已经将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

10-01 16:26