У меня есть два типа объектов: Subject
s и Correspondent
s. Они оба связаны друг с другом через отношения «многие». Я хочу иметь один fetchRequest
, что я могу передать в NSFetchedResultsController
, который будет иметь его вернуть:Combo Core Data Fetch
- Все из
subject
с, которые имеют более одногоcorrespondent
. - Все
correspondent
s имеютsubject
с, что только они отделены друг от друга.
Перепробовав множество вещей, я решил, что это не возможно сделать один выборки, которая возвращает оба Subject
с и Correspondent
с, поэтому я обратился к StackOverflow и нашел кто-то предполагает, что у вас есть один объект, который делает не более чем отношения с двумя объектами, которые вы хотели бы вернуть.
Так что я создал третий тип объекта, который я назвал Folder
с, каждый из которых имеет факультативное отношение к одному с Subject
и Correspondent
. Он также имеет два атрибута: hasCorrespondent
и hasSubject
, которые являются булевыми, отслеживая, установлены ли Subject
или Correspondent
.
Так что я написал этот предикат, который возвращает Folder
сущности:
(hasCorrespondent == 1 AND ANY [email protected] == 1)
OR
(hasSubject == 1 AND [email protected] >= 1)
Проблема с этим я получаю сообщение об ошибке:
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Unsupported function expression count:(correspondent.subjects.correspondents)
Таким образом, любые предложения относительно того, что я m делать неправильно? Как я могу выполнить то, что мне нужно? Есть ли дополнительные сведения, которые я должен поделиться?
UPDATE
С предложением Мартина, я изменил часть обижая к этому:
SUBQUERY(correspondent.subjects, $s, [email protected] == 1)[email protected] > 0
Но что породило новую ошибку:
Keypath containing KVC aggregate where there shouldn't be one;
failed to handle [email protected]
После прибегая к помощи вокруг , Я нашел предложения, чтобы добавить проверку, что колл прогиб быть перечислены в течение, по крайней мере, один объект, но изменяя обижая линию это не изменило мои сообщения об ошибках (так, насколько я могу сказать, что ничего не делал):
[email protected] > 0 AND
SUBQUERY(correspondent.subjects, $s, [email protected] == 1)[email protected] > 0
Все, что я нашел твердит, что эта ошибка относится к использованию сортировки дескрипторов, но это выборка, а не своего рода ... – ArtOfWarfare
К сожалению, мой ответ не работает, и я не мог понять способ его исправить. –
Спасибо за попытку, в любом случае. – ArtOfWarfare