Mam dwie klasy, Company i MyCompany. MyCompany jest podklasą firmy, a firma jest podklasą NSManagedObject. Próbuję napisać predykat dla NSFetchRequest, który zwróci wyniki klasy Company, ale odfiltrować obiekty MyCompany.NSPredicate, który odfiltrowuje wyniki podklasy
Próbowałem następujące (sugerowana stąd https://stackoverflow.com/a/8065935/472344):
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"class != %@",NSStringFromClass([myCompany class])];
ale pojawia się błąd:
'keypath class not found in entity <NSSQLEntity CKCompany id=1>'
Próbowałem również (sugerowany stąd https://stackoverflow.com/a/11693983/472344, wiem, że naprawdę chcesz nie SELF toKindOfClass, ale właśnie testowałem z dokładnie tą samą komendą, jak podano w odpowiedzi):
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self isKindOfClass: %@", [myCompany class];
I uzyskałem następujący błąd:
'Unknown/unsupported comparison predicate operator type'
Jak mogę napisać predykat aby osiągnąć to, co chcę? Obsługuję system iOS 5 i nowsze.
Klasa, o której mowa, nie jest obiektem NSObject, więc nie odpowiada na "class" lub "className" – Stavash
Company i MyCompany są obiektami NSObjects tak jak dziedziczą po obiekcie NSManagedObject, ale teraz zdaję sobie sprawę, że predykat jest stosowany do NSSQLEntity, więc moja sytuacja nie jest odpowiednikiem sytuacji, na którą odpowiedziały odpowiedzi. Jednak nadal potrzebuję rozwiązania mojego problemu. – Darren