我正在使用排序描述符对获取请求的结果进行排序。
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];
问题在于以“İ”等非英语字符开头的单词列在列表末尾。这是一个土耳其字母,字母表如下所示:
A、B、C、Ç、D、E、F、G、Ğ、H、I、İ、J、K、L、M、N、O、Ö、P、R、S、Ş、T、U、 Ü、V、Y、Z。
所以这封信在第 12 位。
我不知道为什么,但在获取对象后使用比较器是可行的。所以它适用于任何数组,但不适用于获取请求的排序描述符。