2016-07-31 38 views
2

Sagen wir, ich habe NSManagedObject Zoo, und er bekam Verbindung oneToMany zu 'Cat' genannt Katzen, diese Verbindung ist NSSet. Wenn ich die Funktion ‚filteredSetUsingPredicate‘ verwenden, erhalte ich einen Absturz mit dem folgenden Code:Absturz bei Verwendung von 'filteredSetUsingPredicate' auf CoreData NSSet (NSInvalidArgumentException: set Argument ist kein NSSet)

Zoo *zoo = //intance of our zoo with all the animals - from core data 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"catSize == Big"]; 
NSArray *arrayOfCats = [zoo.cats filteredSetUsingPredicate:predicate]; 

Der Absturz Stack ist wie folgt:

Terminating app due to an uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableSet unionSet:]: set argument is not an NSSet' 

Crashed: com.apple.main-thread 
1 CoreFoundation     0x180f51798 -[NSMutableSet unionSet:] + 96 
2 CoreData      0x182f24154 -[_NSFaultingMutableSet willReadWithContents:] + 716 
3 CoreData      0x182f05f10 -[_NSFaultingMutableSet count] + 28 
4 Foundation      0x181a93828 -[NSSet(NSPredicateSupport) filteredSetUsingPredicate:] + 68 

Dies nur hin und wieder passiert, und wahrscheinlich hat mit Updates und Löschen zu tun, die ich im Hintergrundkontext mache (Katzen hinzufügen oder löschen, wenn ich bei diesem Beispiel bleibe). Eine Idee, wie kann ich meine Anwendung vor Abstürzen schützen? Jeder Zugriff auf die Eigentumskatzen verursacht einen Absturz.

+0

Mögliche Duplikat [NSPredicate Ergebnisse von Unterabfragen in: \ [NSMutableSet unionSet \] gesetzt Argument nicht ein NSSet ist] (http://stackoverflow.com/questions/30992832/nspredicate-subquery-results-in-nsmutable-set-unionset-set-argument-is-not-an) – Larme

Antwort

0

Sie sollten in der Beziehung aussehen löschen Regel seine Setup stellen Sie sicher, richtig