CoreData Fetching Entities - PullRequest
       28

CoreData Fetching Entities

3 голосов
/ 15 декабря 2011

У меня довольно простой вопрос.Если у меня есть две сущности с отношением между ними (скажем, entityOne имеет отношение ко многим к entityTwo).Когда я получаю entityOne, он автоматически выбирает свои отношения?Или я должен их также извлечь и назначить их соответствующей сущности?

Я подумал, что на самом деле было бы лучше спросить в чате, поскольку это простой вопрос, но у меня пока нет необходимой репутации.

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

В том же проекте у меня есть rootViewController, который выбирает объекты.Теперь, если я хочу добавить событие, я должен отправить пользователя в другое представление с textFields и тому подобным.Я закончил тем, что создал массив «eventArray» для каждого из этих viewControllers, так как не мог найти более эффективный способ сделать это.Допустим, у меня в rootViewController есть NSMutableArray * eventsArray, а в addEventViewController у меня также есть NSMutableArray * eventsArray, который устанавливается перед нажатием addEventViewController (addEventViewController.eventsArray = self.eventsArray).Как мне сделать это более эффективно?Я почти уверен, что это неправильный способ сделать это.

1 Ответ

3 голосов
/ 15 декабря 2011

В ответ на ваш первый вопрос:

Эта ситуация обрабатывается Core Data автоматически, и механизм называется «сбой». Apple имеет некоторую полезную документацию по этому . Проще говоря, связанные объекты не выбираются, но когда вы пытаетесь получить к ним доступ, Core Data автоматически извлекает их из постоянного хранилища.

Конечно, могут быть ситуации, когда это одно за другим извлечение связанных объектов (например, для отображения чего-либо о связанных объектах в таблице) замедляет работу вашего приложения.

В этой ситуации вы можете использовать метод setRelationshipKeyPathsForPrefetching: в NSFetchRequest, чтобы получить эти объекты заранее. Это все вопрос баланса между использованием памяти и производительностью.

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

...