Может ли Core Data лениво извлекать атрибут BLOB на iOS? - PullRequest
4 голосов
/ 20 октября 2010

Я храню фотографию в качестве атрибута Transformable в моей сущности Core Data, которая представляет собой большой объем данных для загрузки в память iPhone.Если я хочу представить TableView, в котором перечислены все объекты (возможно, сотни или тысячи), но нужно только отобразить их заголовок, будут ли Базовые данные по-прежнему извлекать каждую фотографию и сохранять ее в ОЗУ до того, как она потребуется?То, что я хочу сделать, это иметь "ленивую выборку" фотографии, только когда пользователь выбирает запись для просмотра в другом ViewController.Какой самый эффективный способ сделать это?

1 Ответ

7 голосов
/ 22 октября 2010

Нашел ответ сам после чуть большего RTFM. Короче говоря: нет. Если вы хотите хранить фотографии в модели базовых данных, то лучше создать отдельный тип объекта для фотографий с отношением 1: 1 к основному объекту. Встроенное ошибочное поведение будет лениво извлекать объект фотографии только тогда, когда вы действительно потребуете его в своем коде.

Документировано здесь: http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdPerformance.html#//apple_ref/doc/uid/TP40003468-SW5

...