Обновление приложения Objective-C удаляет сохраненные изображения

Я выпустил приложение, в котором пользователь может редактировать некоторые изображения и сохранять их в собственном приложении (я имею в виду: оно не сохраняется в фотопленке). Через некоторое время я выпустил версию 2.0 приложения, и пользователи жаловались, что процесс обновления удалил их сохраненные изображения.

Это следует за частью моего кода, где сохраняются изображения:

NSData *dataFromPNG = UIImagePNGRepresentation(image);
NSString *mainPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:@"/SavedData"];
NSString *directory = [mainPath stringByAppendingPathComponent:[NSString stringWithFormat:@"image(%d).png", imageIndex]];
[dataFromPNG writeToFile:directory atomically:YES];

Где моя ошибка?


person Jeff McIntosh    schedule 25.06.2015    source источник
comment
Возможно imageIndex или что-то другое, кроме самих файлов изображений   -  person stevesliva    schedule 25.06.2015


Ответы (1)


Как вы рассчитываете свой imageIndex? Я думаю, проблема есть. Если они сохранили 10 изображений с последней версией, то вы вычисляете последний индекс с новой версией?

Я думаю, вы перезаписываете изображения, поэтому кажется, что обновление удаляет. Это было предположение с кодом, который вы предоставили. Попробуйте это, и если это не решение, предоставьте свой код для вычисления imageIndex.

person Bhanupriya    schedule 25.06.2015
comment
Когда приложение открывается, система считывает все сохраненные изображения, помещает их в UICollectionView и подсчитывает количество изображений. Итак, когда пользователь создает новое изображение, indexPicture равно количеству изображений + 1. - person Jeff McIntosh; 03.07.2015
comment
Где вы храните? NSCachesDirectory или NSDocumentDirectory? Проверьте эту ссылку: stackoverflow.com/questions/ 6879860/ - person Bhanupriya; 07.07.2015
comment
Я не знаю, что на это ответить. Согласно этой строке моего кода: NSString *mainPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingString:@"/SavedData"];, я полагаю, что использую NSDocumentDirectory. - person Jeff McIntosh; 20.07.2015