Базовые данные - хранящие изображения [закрытый] (iPhone)

46
задан Urizen 18 January 2010 в 23:41
поделиться

3 ответа

Правило для хранения данных изображения в основных данных заключается в следующем:

  • <100 KB Store в соответствующем объекте (человек, адрес, что угодно).
  • <1 МБ хранилище в отдельном объекте на другом конце отношений, чтобы избежать проблем с производительностью.
  • 1 MB Store на диске и ссылается на путь в основном хранилище данных.

Вы можете использовать трансформируемый тип данных, чтобы сохранить NSImage непосредственно в основные данные. На самом деле вы можете использовать трансформируемый тип данных для хранения всего, что реализует Nscoder протокол.

Лично я не преобразую его в Cgimageref, как вы можете потерять много информации таким образом.

84
ответ дан 26 November 2019 в 20:11
поделиться

Поднастройка: Вы можете в конечном итоге огромным, трудно обрабатывать базу данных SQLite. Вы действительно хотите, чтобы ваши пользователи загружали несколько файлов MB за один шаг к серверу? Что вы делаете, если соединение Celluar вырывается в течение нескольких секунд?

Я думаю, что это будет лучше, если вы используете основные данные для управления вашими изображениями и их состоянием загрузки (загружены: Да или Нет). Таким образом, вы можете загрузить изображения, когда он подходит для вашего рабочего процесса приложения. Хорошо, это будет длиться немного дольше, из-за многих соединений. Но это чистый подход, я думаю, что ...

Когда вы думаете об iTunes, когда говорите о резервных копиях: ваша локальная папка «Документы документов iPhone» в любом случае синхронизируется.

4
ответ дан 26 November 2019 в 20:11
поделиться

Вы должны иметь a, тогда вы можете сделать что-то вроде этого:

CGImageRef imageRef = uiImage.CGImage;
CGDataProviderRef dataProvider = CGImageGetDataProvider(imageRef);
NSData *imageData = (NSData*)CGDataProviderCopyData(dataProvider);
[managedObject setValue:imageData forKey:@"data"];

Где managedObject - это ваш объект образа ядра данных, а @"данные" - это имя двоичного свойства. Вам также может понадобиться сохранить формат изображения, чтобы десериализовать его позже.

Другой вариант - сохранить изображение на диск и сохранить путь к нему в основных данных.

3
ответ дан 26 November 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: