Базовые данные: хранение массива объектов - PullRequest
7 голосов
/ 17 июня 2011

Я новичок в Core Data, и мне было интересно, могу ли я получить какой-нибудь совет о том, как лучше всего изложить следующий сценарий с Core Data:

У меня есть объект Patient (и соответствующий ему подкласс NSManagedObject). У каждого пациента могут быть различные заболевания. Каждое заболевание - это отдельная сущность и управляемый объект. В моем классе «Пациент» я хочу заполнить список заболеваний для этого пациента. Однако Core Data не позволяет вам хранить NSArray в качестве атрибута.

Как лучше всего организовать это в Базовых данных?

Я подумал о некоторых вариантах:

  1. Использовать переносимый атрибут в объекте Patient и сохранить в нем массив? Кажется, не очень чистый

  2. Используйте промежуточную сущность Контроллер между Пациентом и Болезнями, которая может имитировать некоторые особенности массива

  3. Я не знаю, возможно ли это, но, может быть, сделать выборку и получить только те заболевания, которые связаны с определенным пациентом?

Спасибо за любую помощь!

1 Ответ

7 голосов
/ 17 июня 2011

Это то, для чего нужны отношения.

Пациент has_many Болезни
Болезнь has_one Пациент

Настройте их, и тогда вы сможете набирать такие вещи:

patient.diseases //returns an NSSet (very much like an array)

Подробнее об этом здесь .

...