A
. b
i B
. a
są relacjami odwrotnymi do wielu. Dlaczego ten predykat dla A
pracy:Dlaczego "NOT IN" nie działa w tym NSPredicate?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT SELF IN %@", bObject.a];
podczas gdy ten nie:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT %@ IN b", bObject];
myślę oba predykaty powinien dać ten sam wynik - zbiór A
s, które nie mają związku z bObject
poprzez a<-->b
. Ale w rzeczywistości pierwsza daje prawidłową kolekcję, a druga nie.
Update:
Oto sample project którym A
. b
jest zawarte w Account
. filtered_clients
i B
. a
jest wcielony przez Client
. filtered_by
.
Przełącz komentarz do linii 143 i linii 144 w MasterViewController.m
, aby zobaczyć różnicę.
Proszę mi pomóc znaleźć błąd w moim kodzie lub potwierdzić, że jest to błąd Core Data
, więc mogę zgłosić to firmie Apple. Dziękuję bardzo.
Twój drugi predykat wydaje się testować, jeśli b nie jest w b - czy to masz na myśli? –
Jak zauważył Nick: możesz podać nieco więcej kodu. Jaka jest zmienna "b"? W jaki sposób generowane jest żądanie pobierania? –
Aby być bardziej zrozumiałym, zmieniłem nazwę zmiennej na "bObject", która jest instancją klasy B. – an0