Estoy ordenando los resultados de una solicitud de recuperación con un descriptor de clasificación.¿Cómo ordenar cadenas no inglesas usando 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];
El problema es las palabras, que comienza con caracteres no ingleses como 'I' se enumeran al final de la lista. Es una carta turco y el alfabeto se ve así:
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.
Así que la carta está en la 12ª posición.
No sé por qué, pero el uso de comparator after traching objects funciona. Por lo tanto, funciona en cualquier matriz pero no con el descriptor de clasificación para la solicitud de búsqueda.
se no funcionó También traté de cambiar el lenguaje del simulador. – Mert
Eso es extraño. Si ordeno una matriz con '[myArray sortedArrayUsingSelector: @selector (localizedCompare :)]' entonces obtengo los resultados correctos. ¿Puedes mostrar el código de cómo configuraste la solicitud de búsqueda? –
He editado mi pregunta y he añadido el código – Mert