Konfiguracja:Jak utworzyć predykat danych podstawowych, aby sprawdzić, czy relacja zawiera wszystkie podane obiekty?
Mam obiekt Core Data A, który ma relację do wielu do B. Wywołaj relację "items". Więc a.items zwraca wszystkie B-ów związanych z A.
Teraz mam ręcznie złożoną NSSet „Zbiór,” obiektów B.
Chcę wykonać następujące czynności:
return all A objects whose "items" relation exactly matches itemSet
Jak skonstruować predykat do tego? Próbowałem tego:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"(ALL items in %@)", itemSet];
Ale to tylko daje mi Unsupported predicate (null)
.
to:
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"(items in %@)", itemSet];
mówi mi unimplemented SQL generation for predicate
. Interesujące, ale nie pomocne.
Więc jaki jest właściwy sposób filtrowania relacji z zestawem?
Interesujące. To działa. Gdzie mogę dowiedzieć się więcej o SUBQUERY? Oficjalne dokumenty predykatów są dość rzadkie. – Jaanus
@Jaanus: Obawiam się, że nie mam lepszego odniesienia. Nauczyłem się tego głównie, próbując zrozumieć odpowiedzi innych ludzi w SO. –
Miałem problemy związane z niewystarczającym użyciem nawiasów. Dzięki za odpowiedź @MartinR –