Сохраненный NSFetchRequest возвращает ошибку «Запрос на выборку должен иметь сущность» - PullRequest
0 голосов
/ 19 августа 2011

Я добавил извлеченное свойство в свою сущность в модели данных.Я не добавил его предикат.Я извлекаю его с помощью fetchRequestTemplateForName, но при его выполнении я получаю эту ошибку «executeFetchRequest: error: запрос на выборку должен иметь сущность.»

Но почему я получаю эту ошибку.Разве это извлеченное свойство не является собственностью моей сущности?

Поэтому я продолжаю отлаживать проблему и обнаруживаю, что это произошло потому, что полученный NSFetchRequest == nil

[[self managedObjectModel] fetchRequestTemplateForName: @ "somename"];

как мне это исправить?

Спасибо!

Цю

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Спасибо, что ответили на мой вопрос.Я добавил предикат, как вы предложили, но NSFetchRequest все еще вернул ноль.Затем я внезапно понял, что на самом деле добавил извлеченное свойство НЕ запрос извлечения к моей сущности, и именно поэтому fetchRequestTemplateForName возвращает nil.Поэтому я добавил запрос на извлечение (в меню редактора есть пункты меню «Добавить запрос на извлечение» и «Добавить извлеченное свойство»), и это решило проблему!Извините за путаницу: $.

Но тогда у меня вопрос, зачем нам нужно извлеченное свойство, поскольку у нас уже есть запрос на извлечение?Я знаю, что в яблочном документе сказано что-то вроде «извлеченные свойства представляют слабые односторонние отношения».Но я все еще чувствую растерянность запроса на получение ч / б, который кажется более простым.

0 голосов
/ 20 августа 2011

Я предполагаю, что вы создали свое извлеченное свойство в редакторе модели XCode, а не программно. Вам нужно заполнить предикат, иначе нечего извлекать. Следовательно, NSFetchRequest возвращается как nil.

Извлеченное свойство - это всего лишь удобный ярлык для записи длинных запросов на выборку в коде время от времени для результатов, которые вы не хотите сохранять. Может быть, это хороший процесс, чтобы сначала увидеть, работает ли ваш NSFetchRequest, написанный в коде, а затем перенести его в модель.

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