Как создавать и извлекать реляционные записи в основных данных - PullRequest
0 голосов
/ 18 февраля 2012

Полный вопрос новичка сейчас ... Достаточно сказать, что я искал совершенно странное объяснение, но не нашел ничего достаточно "глупого".Проблема в том, что ...

Я создал базовый стек данных, в котором у меня есть объект с именем «Клиент» и объект с именем «Автомобиль».Это отношение один-ко-многим.

До сих пор я успешно создал и получил список клиентов, используя код из руководства Apple.После того, как я выбрал клиента, я нажимаю новый tableViewController, в котором должен быть указан список автомобилей для этого выбранного клиента.

Первый вопрос ...

Я привык к программированию базы данных в стиле sql, где, еслиЕсли бы я хотел добавить автомобиль клиенту, я бы просто добавил тег «ClientID» в запись «Car», тем самым обеспечив связь с конкретным клиентом.Как мне сделать эквивалент в основных данных?Из моего прочтения я понимаю, что добавление атрибутов для указания на другие сущности не требуется - базовые данные поддерживают эти отношения для вас, не требуя дополнительных атрибутов в сущностях.

Второй вопрос ...

Как икогда я создал объект «автомобиль» и успешно связал его с «клиентом».Как создать извлечение, которое будет извлекать ТОЛЬКО автомобили клиента.Я мог бы изменить код от Apple, чтобы получить ВСЕ автомобили, но я не знаю, как получить автомобили, связанные с данным клиентом.Из моего прочтения я думаю, что мне нужно использовать предикаты, но документация яблок для предикатов стоит сама по себе и не дает четких указаний о том, как использовать ее с основными данными

Я понимаю, насколько это странно, но не могу найтиидиоты ведут куда угодно ...

Любая помощь / пример кода очень ценятся.

1 Ответ

1 голос
/ 19 февраля 2012

ОК, я ответил на свой вопрос. Для тех, кто нашел мой вопрос и хотел бы узнать ответ, это предельно просто ...

Во-первых, создать «Автомобиль» и связать его с «Клиентом». Сначала создайте «Автомобиль», как обычно, и просто добавьте эту строку кода ...

newCar.client = client;

Устанавливает отношение «клиент» в записи «Автомобиль» к соответствующему клиенту.

Во-вторых, я подумал, что если у вас есть клиент и вам нужно найти их машины, вам понадобится новый пакет. Но не так! Просто используйте следующие строки кода ...

NSSet *cars = client.cars;
[self setCarsArray:[cars allObjects]];

Первая строка использует "client.cars", чтобы следовать за графом объектов, чтобы определить автомобили, которые есть у этого клиента, и заполнить их в NSSet. Затем вторая строка заполняет NSArray, который объявлен в текущем viewcontroller, который может использоваться для целей отображения.

Сортировано !!

...