Dataloss после синхронизации iTunes - PullRequest
1 голос
/ 28 июля 2011

У меня есть приложение, которое сохраняет свои пользовательские данные в файл в каталоге документов, например:

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?

Любые мысли будут очень признательны!

1 Ответ

1 голос
/ 28 июля 2011

Попробуйте сохранить в NSUserDefaults вместо файла.

...