У меня возникли проблемы с сортировкой NSNumber с помощью NSSortDescriptor. По какой-то причине он не будет сортироваться в правильном порядке. Что я делаю не так?Как вы сортируете NSNumber с помощью NSSortDescriptor?
- (NSNumber *)sortNumber {
NSNumber *sum = [NSNumber numberWithFloat:([self.capacity floatValue]/[self.availability floatValue])];
return sum;
}
Он определяется как Int32 в xcdataModel и называется этим классом для сортировки.
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController == nil) {
NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init] autorelease];
[fetchRequest setReturnsObjectsAsFaults:NO];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext]];
NSArray *sortDescriptors = nil;
} if ([fetchSectioningControl selectedSegmentIndex] == 0) {
sortDescriptors = [NSArray arrayWithObject:[[[NSSortDescriptor alloc] initWithKey:@"sortNumber" ascending:YES selector:@selector(compare:)] autorelease]];
}
[fetchRequest setSortDescriptors:sortDescriptors];
EDIT: Да, в холодный свет дня это требует немного большего объяснения. Я попытаюсь объяснить проект. Это приложение CoreData, «емкость значений» и «доступность» основаны на анализе XML-файла с SAX и прикреплении его к модели управляемого объекта, где они определены как строки, изначально они были бы числовыми в XML.
Затем они определены в классе, в котором выполнены расчеты и прикреплены к одной и той же объектной модели (если приведенный выше код прав, то, возможно, именно здесь проблема?). Все это было в попытке получить процентное значение, которое я хотел бы использовать для сортировки TableView. (Кстати, я понимаю, что им нужно обмениваться, oops) Второй бит кода - это то, где это происходит с помощью NSFetchResultsController и ManagedObjectContext. Я знаю, что этот бит работает, потому что я также сортирую этот список по другим атрибутам, установленным в if selectedSegmentIndex == 0 и т. Д. Они все сортируются правильно.
Надеюсь, это будет иметь больше смысла.
Это приложение CoreData? не могли бы вы включить немного больше кода, чтобы помочь нам решить проблему? – slf
Я попытался добавить больше деталей к проекту, см. Выше. Как всегда с такими вещами трудно понять, где остановиться. Управление объектной моделью трудно опубликовать, но в основном она имеет только одно отношение, которое не является этим критерием. Может быть, это должно быть? – Jim