Простой вопрос о сохранении данных между сеансами приложений.
Мое приложение позволяет пользователю выбирать изображение из библиотеки с помощью UIImagePickerController. Выбранная фотография затем используется в качестве фона для приложения.
Поскольку метод делегата UIImagePickerController фактически возвращает изображение, а не путь к изображению, мне интересно, как лучше всего сохранить это изображение в пользовательских сеансах?
В данный момент мне не нужно сохранять какие-либо другие данные, так как все остальное загружается из SQL Server, но я не хочу дополнительных накладных расходов, связанных с необходимостью хранения изображения на сервере, что означало бы, что каждый раз, когда пользователь открыл приложение, фоновое изображение сначала должно быть загружено с сервера в массив байтов, а затем преобразовано в изображение.
Я нашел следующий код, который может сохранить изображение:
- (void)saveImage:(UIImage *)image withName:(NSString *)name {
//save image
NSData *data = UIImageJPEGRepresentation(image, 1.0);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:name];
[fileManager createFileAtPath:fullPath contents:data attributes:nil];
}
В данный момент у меня нет Mac, поэтому я не могу протестировать этот код, но у меня есть пара вопросов относительно приведенного выше кода:
Я не хочу, чтобы много файлов загромождали файловую систему. Поэтому мне нужен один фоновый файл (background.png); как приведенный выше код справится с ситуацией, когда этот файл уже существует?
Будет ли он перезаписывать существующий файл или выдаст ошибку?
Как мне снова загрузить изображение?