2015-01-20 2 views
0

Я занимаюсь учебным пособием по CoreData, и они говорили о опции «Позволяет внешнее хранилище». В документации указано: «Когда включено, Core Data эвристически решает на основе стоимости, если он должен сохранять данные непосредственно в базе данных или хранить URI в отдельный файл, который он управляет для вас. Вы не можете запрашивать на основе содержимого двоичных данных, если вы используете эту опцию ". Я понимаю первую часть, но я не понимаю, что они подразумевают под «Невозможно выполнить запрос на основе содержимого свойства двоичных данных, если вы используете эту опцию». Я чувствую, что это важный материал, но я не могу этого понять. «Вы не можете запрашивать на основе содержимого двоичных данных», что это значит? Я не хочу, если это мой плохой английский или что-то, но я не могу понять. Учебное пособие «Основные данные по учебникам» из серии учебников по книге Рей Вендерлиха. Я очень рекомендую!CoreData и опция «Разрешить внешнее хранилище»

+0

Для ссылки будущих читателей может быть полезно опубликовать ссылку на конкретный учебник, который вы проходили. – narner

+0

Я отредактировал y ответ. – Plot

ответ

1

изображение NSData, которое вы храните, представляет собой данные jpeg с заголовком exif.

Если вы храните данные внутри БД, вы можете использовать предикат, соответствующий указанным данным exif: например. что-то вроде (псевдо) «jpgedData СОДЕРЖИТ автор: Dominik»

, если вы храните его в виде отдельного файла, что запрос не будет работать, так как данные на самом деле не в базе данных

[отметить, что это было объясняющий псевдокод, и я не могу действительно придумать практический/полезный пример]

+1

oohh ok Я вижу, что в принципе вы не можете делать то, что вы даже не должны делать на регулярной основе. Круто! :) – Plot

1

Все это означает, что если вы включите этот параметр для свойства, вы не сможете использовать это свойство в NSPredicate при извлечении объектов. Запрос выборки - это запрос, и когда вы используете предикат, вы извлекаете объекты на основе того, соответствуют ли они предикату. Это не работает, если для свойства допускается внешнее хранилище.

0

Хорошо, я думаю, что понял. В принципе, вы не можете использовать необработанные метаданные изображения для поиска определенного изображения, потому что у вас нет доступа к необработанным данным. У вас есть только доступ к URI. Звучит логично и справедливо для меня, поскольку вы можете просто извлечь метаданные и сохранить их в своей модели CoreData, прежде чем сохранять изображение в качестве трансформируемого (если необходимо).

Смежные вопросы