В первый раз, задавая вопрос, пожалуйста, пройдите, если я не предоставил достаточную информацию. В основном часть моего приложения iOS позволяет пользователям делать снимок, который будет храниться в хранилище основных данных. Атрибут - это тип Transformable, и я создал подкласс NSManagedObject, который я просто использую, чтобы установить его атрибут изображения на новое изображение, предоставленное пользователем.
Я знаю, что хранение больших файлов в Core Data - плохая идея, поэтому я был взволнован, когда увидел параметр "Store in External Record File" под атрибутом image в объекте Core Data. Тем не менее, производительность моего приложения говорит об обратном: за несколько секунд на iPhone 5 загружать только несколько изображений (что, как я знаю, не похоже на много времени, но учитывая, насколько мощным является iPhone 5, более старые устройства, вероятно, занимают гораздо больше времени те же данные).
Я огляделся, и некоторые люди говорят, что параметр Store in External Record File применим только к среде OS X, даже если он доступен в приложении iOS. Тем не менее, я также видел это под Apple "Что нового в iOS 5" doc (это рядом с последним элементом под основными данными, ближе к концу):
Управляемые объекты поддерживают две важные новые функции: упорядоченные отношения и внешнее хранилище для значений атрибутов. Если вы укажете, что значение атрибута управляемого объекта может быть сохранено как внешняя запись, Core Data эвристически решает на основе стоимости , следует ли сохранять данные непосредственно в базе данных или сохранять URL-адрес в отдельный файл что он управляет вами.
Итак, мой вопрос: кто прав? Правда ли, что Apple допустила ошибку в предоставлении этой опции для приложений iOS и что она фактически ничего не делает, если вы на Mac, или она действительно что-то делает, и я не настраиваю ее правильно, или это делать то, что он должен делать, и производительность в любом случае плохая?
Я видел несколько руководств, объясняющих, как хранить большие файлы (например, изображения) в виде файлов, и вместо этого сохранять URL-адрес в хранилище основных данных, но поскольку это по существу то, что делает этот новый параметр, или, может быть, делаю, я не уверен, что если следовать этим руководствам, это даже поможет.
Мне очень жаль, если это было задано раньше. Обычно мне было бы неплохо разобраться в этом сами, но Core Data для меня совершенно новый, и я до сих пор не знаю, как мне удалось скрипеть при первоначальной настройке. Спасибо за любую помощь, которую вы можете предложить!