NSSortDescriptor für transientes Attribut für NSFetchedResultsController

8

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>'

ausgeführt

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%     
ambientlight 25.07.2013, 09:02
quelle

1 Antwort

16

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.

    
Wain 25.07.2013, 09:04
quelle