Пожалуйста, обратите внимание на следующий код:Невозможно записать в обычае .plist
- (IBAction)testButton:(id)sender{
//create BFF with random id
BFF * testBff = [[BFF alloc]init];
[email protected]"BFF";
testBff.id= [NSNumber numberWithInt:(arc4random() % 100)];
testBff.handshake=[NSDate date];
//Encode the object
//Since a .plist doesn't take custom objects, I convert my object into type NSData*
NSData *encodedBFF = [NSKeyedArchiver archivedDataWithRootObject:testBff];
//Insert the data into the plist and save
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myBFFS.plist"];
[data setObject: encodedBFF forKey:testBff.id];
[data writeToFile:path atomically:YES];
}
Я бы ожидать, что каждый раз, когда я нажал на кнопку, связанную с этим способом, новый объект будет добавлен myBFFs.plist
проживающих в моем папке документов.
-The Путь, кажется, хорошо
-The Переменные Инспектор указывает, что «данные» NSDictionary
содержит ключ со значением типа NSMutableData
Как-то, однако, ничего не записывается в файл.
Если я изменяю
[data setObject: encodedBFF forKey:testBff.id];
в
[data setObject: @"foo" forKey:@"bar"];
файл записывается. По-видимому, мои попытки кодирования не удались?
Что я здесь делаю неправильно?
ОК Я это рассмотрел. Что делает этот оператор 'if (! [FileManager fileExistsAtPath: путь]) {path = (тот же, что и предыдущее значение); } 'достигают? – trojanfoe
О, это только какой-то шаблонный код. См. Мой обновленный вопрос: запись в файл работает нормально, но, похоже, структура файла не принимается. Я упрощу свой вопрос, чтобы увеличить реальную проблему. – Sjakelien
Как получить информацию об ошибке? – trojanfoe