0

这就是我在 viewDidLoad 方法中访问 plist 中字典的方式:

     NSString* documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
     NSString *fileName = [NSString stringWithFormat:@"Level.plist"];
     filePath = [documentsDir stringByAppendingPathComponent:fileName];
     array = [[NSMutableArray alloc] initWithContentsOfFile:filePath];
     dict = [array objectAtIndex:1];

这很好用,然后我这样写字典:

    score = [NSString stringWithFormat:@"%d", score.integerValue + 10];
    [dict setObject:score forKey:@"Score"];
    [dict writeToFile:filePath atomically: NO];

这也可以正常工作,但是一旦我返回此视图并尝试在 viewDidLoad 方法中再次访问字典,它就会为字典返回 (null)。

4

1 回答 1

0

这是因为您将文件作为数组读取,但是当您再次将其写回时,您只是写出字典,而不是包含该字典的数组。如果你尝试使用 NSMutableArray 读取一个 plist 文件,该文件的根目录不是数组,这将导致它返回 nil。因此,如果您只是在最后一行代码中替换dictarray,那应该可以解决问题。

于 2013-01-17T00:37:09.953 回答