我正在创建一个字典列表。plist 一开始是空的,然后我这样做:
NSMutableArray *favouritesList = [[NSMutableArray alloc] initWithContentsOfFile:path];
[favouritesList addObject:thisPlace]; // where thisPlace is some NSDictionary
[favouritesList writeToFile:path atomically:YES];
当我立即这样做时:
NSArray *savedFav = [[NSArray alloc] initWithContentsOfFile:path];
NSLog(@"%@", savedFav);
我得到一个空数组。为什么是这样?为什么写得不好?我正在正确设置 plist,我对其进行了调试。但我无法向其中添加字典。
plist 只是一个空的 plist,其根是一个数组
编辑:
这是我构建路径的方式:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"favourites.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:path]) {
NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"favourites" ofType:@"plist"];
[fileManager copyItemAtPath:sourcePath toPath:path error:nil];
}