Оператор сбора не может перевести отношение «многие-многие» к другому ключу в траектории.В этом случае events
по соглашению будет отношением to_many, поэтому я полагаю, что оператор сбора задыхается от этого.
Вы делаете ошибку, очень распространенную для специалистов по SQL, но плохо знакомых с Core Data.Вы пытаетесь рассматривать Core Data как просто оболочку SQL и пытаетесь использовать этот шаблон проектирования SQL.Не делай этого.
Ваша проблема в том, что вы подходите к проблеме задом наперед.Поскольку Базовые данные являются графом объектов, наиболее распространенным шаблоном является выборка для поиска конкретного объекта, обладающего атрибутом, с которым вы хотите проверить, и обход отношений этих объектов для поиска связанных объектов.
Таким образом, в этом случае вы должны выполнить выборку для объекта, имеющего атрибут dependentID
.Это вернет один или несколько объектов (предположительно, один в данном случае.) Затем, чтобы найти связанные объекты, вы должны пройти путь назад, как у вас есть сейчас.Итак:
dependent.dependents.event.events
Трудно быть более описательным, не зная, как выглядит ваша модель данных, но вы поняли идею.
В SQL, несмотря на то, что это реляционная система, отношения относительно слабы по сравнению с их использованием в базовых данных.В SQL вы создаете отношения в коде выборки.В Core Data они кодируются в графе объектов при создании объектов.Это означает, что вам нужно выполнять гораздо меньше работы, чтобы найти постоянные данные.Извлечение просто отнимает одну (или небольшое количество) нитей из огромной ткани, которая позволяет вам распутать всю вещь, натягивая на отношения.