Базовые данные 2 отличаются отношениями от одного объекта к другому - PullRequest
1 голос
/ 14 сентября 2011

Я хочу иметь эту модель:

Feature -> Image (relationship name: image inverse: feature)
Feature -> Image (relationship name: thumb inverse: feature)

Image -> Feature (relationship name: feature inverse: ????)

Я могу настроить только один обратный.Но похоже, что мне нужно и: image и thumb

ОБНОВЛЕНИЕ

Один из способов - создать эту модель:

Изображение содержит все, что нам нужно, из изображения Изображение наследует изображение Изображение большого пальца наследует

они разделяют класс NSManagedObject.

Это правильно?

ОБНОВЛЕНИЕ 2

После помощи @StuDev моя модель выглядит следующим образом.

Model version 2.0

Спасибо.

1 Ответ

1 голос
/ 14 сентября 2011

Я бы порекомендовал установить модель, которая выглядит примерно так:

Multiple entity sample core data model

Итак, используя вашу запись:

Feature -> Image (destination: Image, inverse: feature)
Feature -> Thumb (destination: Thumb, inverse: feature)

Или наоборот (тоже самое):

Image -> Feature (destination: Feature, inverse: image)
Thumb -> Feature (destination: Feature, inverse: thumb)

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

EDIT

В качестве альтернативы, если вы хотите, чтобы изображение и большой палец находились в одном и том же подклассе NSManagedObject (как вы предлагаете в своем обновлении), затем объедините их в качестве атрибутов в сущности «Изображение» (или как вы хотите ее назвать ):

Single entity sample core data model

Используя этот подход, если вы хотите получить доступ к изображению или эскизу данной функции, просто перейдите к изображению функции, а затем получите доступ к изображению или большому пальцу:

UIImage *theThumbnail = [feature.picture thumb];  // Assuming you are storing the image & thumb as a transformable (UIImage) type
...