Установка ограничения для извлекаемого свойства в Core Data - PullRequest
0 голосов
/ 25 января 2010

У меня есть отношения один-ко-многим между двумя объектами, давайте назовем их Галерея и Изображения. Каждое изображение принадлежит галерее, и каждая галерея имеет много изображений.

Я хотел бы добавить извлеченное свойство к моей модели галереи, которое бы возвращало один и только один объект Image.

Есть ли способ сделать это с извлеченными свойствами?

Ответы [ 2 ]

4 голосов
/ 25 января 2010

Для извлеченного свойства предикат является единственным вариантом.

См. Руководство по программированию предиката - Агрегатные операции раздел. Вы захотите использовать array[FIRST].

Обратите внимание, что вы, скорее всего, будете получать разные изображения каждый раз, поскольку в Базовых данных отсутствует поддержка упорядоченных наборов. Обычно вы можете обойти это, поддерживая порядок сортировки изображений в ключе «sortOrder» и устанавливая дескрипторы сортировки в своей выборке, но я не думаю, что можно дать дескрипторы сортировки для свойства выборки.

Обновление для Lion: Поддержка упорядоченных наборов была добавлена ​​в базовые данные в версии 10.7 и выше, что делает дополнительный атрибут «sortOrder» ненужным для приложений с таргетингом 10.7 и выше.

0 голосов
/ 25 января 2010

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

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