0

我一直在尝试保存到属性列表文件,但是它不起作用,因为它只是将对象保存到数组而不是实际文件本身,这意味着它保存的内容并没有明显持久化。

[[category objectAtIndex:questionCounter] replaceObjectAtIndex:5 withObject:myString];
[category writeToFile:filePath atomically:YES];

我之前使用它来将属性列表文件保存到文档目录,以便我可以编辑并保存到它们:

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *plistFilePath = [documentsDirectory stringByAppendingPathComponent:fileNameFull];

if([[NSFileManager defaultManager] fileExistsAtPath:plistFilePath]) {

    category = [NSMutableArray arrayWithContentsOfFile:plistFilePath];

    NSLog(@"Files exist.");

}
else {

    filePath = [[NSBundle mainBundle] pathForResource:fileNamer ofType:@"plist"];
    category = [NSMutableArray arrayWithContentsOfFile:filePath];

    NSLog(@"Files have been created.");

}

我的属性列表由数组组成,在这些数组中我试图保存我的对象(字符串)。我有一种感觉,这是微不足道的,但我无法发现它。

4

1 回答 1

2

当你试图保存你的数组时,你正在传递filePathwhich 指向你不能写入的主包目录。您想plistFilePath改用,如下所示:

[category writeToFile:plistFilePath atomically:YES];
于 2012-10-05T19:14:04.507 回答