Ich sortiere Ergebnisse einer Abrufanforderung mit einem Sortierdeskriptor.Wie sortiert man nicht-englische Strings mit nspredicate?
NSFetchRequest* req = [[NSFetchRequest alloc] initWithEntityName:[MyEntity entityName]];
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"property"
ascending:YES
selector:@selector(localizedCompare:)];
req.sortDescriptors = [NSArray arrayWithObject:descriptor];
return [self.managedObjectContext executeFetchRequest:req error:nil];
Das Problem sind die Worte, die mit Nicht-Englisch-Zeichen wie ‚I‘ beginnen am Ende der Liste aufgeführt. Es ist ein türkischer Buchstabe und das Alphabet wie folgt aussieht:
A, B, C, C, D, E, F, G, G, H, I, I, J, K, L, M, N, O, Ö, P, R, S, Ş, T, U, Ü, V, Y, Z.
So ist der Brief an der 12. Stelle.
Ich weiß nicht warum, aber Komparator nach dem Abrufen von Objekten funktioniert. Es funktioniert also mit jedem Array, aber nicht mit dem Sortierungsdeskriptor für die Abrufanforderung.
Es hat nicht funktioniert. Ich habe auch versucht, die Sprache des Simulators zu ändern. – Mert
Das ist seltsam. Wenn ich ein Array mit '[myArray sortedArrayUsingSelector: @selector (localizedCompare :)]' sortiere, bekomme ich korrekte Ergebnisse. Können Sie den Code anzeigen, wie Sie die Abrufanforderung einrichten? –
Ich habe meine Frage bearbeitet und den Code – Mert