Ok, ich wollte zunächst NSSortDescriptor
einer Anfrage für NSFetchedResultsController
sortieren, basierend auf der Eigenschaft in meiner NSManagedObject
Unterklasse, aber es wird es offensichtlich nicht tun, weil NSFetchedResultsController auf Prädikate und Sortierung beschränkt ist Deskriptoren, die an der abgerufenen Entität und ihren Beziehungen arbeiten, also habe ich beschlossen, ein transientes Attribut in meinem Datenmodell zu erstellen, die Eigenschaft für dieses Attribut in meiner NSManagedObject
-Unterklasse zusammenzufassen und danach zu sortieren.
Bei der Ausführung habe ich fetch 'NSInvalidArgumentException', reason: 'keypath isActive not found in entity <NSSQLEntity SMSourceEntity id=2>'
Ich weiß, dass dies ein KVO-Problem ist, also habe ich + (NSSet*)keyPathsForValuesAffectingIsActive
hinzugefügt, habe aber immer noch das gleiche Problem.
Was habe ich falsch gemacht, oder fehlt mir noch etwas, damit es meinen Schlüsselpfad findet? Danke.
code:
%Vor%mein Sortierdeskriptor:
%Vor% Es ist kein KVO
Problem, es ist ein Problem mit dem, was Sie versuchen, weil der FRC erfordert, dass die Sortierung auf den zugrunde liegenden SQLite-Speicher angewendet werden kann. Mit anderen Worten, Sie können nur nicht-transiente Attribute filtern und sortieren. Sie müssen das Attribut nicht flüchtig machen, damit sein Wert im Speicher gespeichert und für SQLite verfügbar ist.
Für den FRC kann nur das Pfadattribut für den Abschnittsnamenschlüssel vorübergehend sein.
Tags und Links objective-c ios key-value-observing nssortdescriptor transient