У меня есть приложение, которое сохраняет свои пользовательские данные в файл в каталоге документов, например:
NSLog(@"Saving myLibrary.dat...");
NSString *filePath = [[self documentsDirectory] stringByAppendingPathComponent:@"myLibrary.dat"];
BOOL succeed = [[NSKeyedArchiver archivedDataWithRootObject:myLibrary] writeToFile:filePath atomically:YES];
if (!succeed){
NSLog(@"There was an error saving myLibrary.dat!");
}
и каталог моих документов:
-(NSString*)documentsDirectory
{
NSLog(@"documentsDirectory");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
return documentsDirectory;
}
Библиотека данных сохраняет myLibrary, которая является NSMutableArray, с множеством других NSMutableArrays или NSStrings.
У меня никогда не возникало никаких проблем с приложением, сохраняющим мои данные, но теперь пользователь сообщил, что его библиотека испортилась (элементы дублируются или меняются местами) после выполнения синхронизации iTunes.
Я не настроил какие-либо функции синхронизации с синхронизацией iTunes и поэтому понятия не имею, почему он сталкивается с этой ошибкой?
Кто-нибудь может подумать о соединении, или это просто тот случай, когда ошибка должна быть найдена в другом месте (в моем приложении) и что пользователь, возможно, только случайно столкнулся с ошибкой сразу после синхронизации iTune?
Любые мысли будут очень признательны!