Sortuję wyniki żądania pobierania z deskryptorem sortowania.Jak sortować ciągi w języku innym niż angielski za pomocą 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];
Problem polega na tym, że słowa, które zaczynają się od znaków nieangielskich takich jak "İ", są wymienione na końcu listy. Jest to łaźnia list i alfabetu wygląda następująco:
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.
Tak więc litera znajduje się na 12 pozycji.
Nie wiem dlaczego, ale korzystanie z komparatora po pobraniu obiektów działa. Tak więc działa na dowolnej tablicy, ale nie z deskryptorem sortowania dla żądania pobierania.
It nie działa. Próbowałem też zmienić język symulatora. – Mert
To dziwne. Jeśli sortuję tablicę z '[myArray sortedArrayUsingSelector: @selector (localizedCompare :)], wtedy otrzymam poprawne wyniki. Czy możesz pokazać kod, w jaki sposób konfigurujesz żądanie pobierania? –
Zmodyfikowalem moje pytanie i dodalem kod: – Mert