Core Data: sorteren en decoderen van waarde van een transformeerbaar veld

Ik heb een versleutelde NSString-winkel in een transformeerbaar veld. Ik moet alle waarden in alfabetische volgorde decoderen en vermelden.

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] 
                                    initWithKey:@"trans_word" 
                                    ascending:YES
                                    comparator:^NSComparisonResult(id obj1, id obj2) {
    NSString* s1 = [encryptObj decryptingfromValue:obj1]; 
    NSString* s2 = [encryptObj decryptingfromValue:obj2]; 
    NSLog(@"xxx");
    return [s1 compare:s2];
}];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];

Het lijkt erop dat het blok geen prestaties levert. Kun je me een hint geven? Bedankt!

0

1 antwoord

Op iOS en OS X vóór 10.6 en bij gebruik van op SQLite gebaseerde winkels, worden blokpredicaten niet ondersteund.

Speciale aandachtspunten

     

In Mac OS X v10.6 ondersteunt Core Data deze methode in de opslagplaatsen in het geheugen en atomaire ruimten, maar niet in de op SQLite gebaseerde winkel. (link)

1
toegevoegd
Niet echt. Dat is een van de problemen met het coderen van gegevens. Je kunt er niet veel mee doen. U kunt een voorbijgaande eigenschap maken (een die niet is opgeslagen om te worden opgeslagen) die de niet-versleutelde gegevens bevat? Ik heb niet veel ervaring met het coderingswerk. : /
toegevoegd de auteur Alexsander Akers, de bron
Als u echt blokpredicaten moet gebruiken, is de enige oplossing om ze allemaal in het geheugen te lezen en het blok-predikaattype op de array te gebruiken.
toegevoegd de auteur borrrden, de bron
Bedankt Alex! Is er een alternatieve methode?
toegevoegd de auteur Jimi, de bron