Я создаю слой словарей. PLIST начинается как пустой, а затем я делаю это:Создание массива словарей 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 с корнем, что это такое массив
EDIT:
Вот как я построить свой путь:
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];
}
Вы вошли в систему 'path', чтобы убедиться, что это действительно? Указывает ли он на файл в каталоге «Документы»? Как вы построили «путь»? Вы проверили, вернул ли 'writeToFile'' TRUE'? – Rob
Да, см. Редактирование того, как я сделал свой путь – darksky
Если файл plist пуст, то первая инициализация завершается с ошибкой и возвращает 'nil'. Вы должны проверить это и выделить-инициализировать действительный, но пустой массив. –