我無法使用NSSortDescriptor對NSNumber進行排序。無論出於何種原因,它都不會按照正確的順序排序。我究竟做錯了什麼?如何將NSNumber與NSSortDescriptor進行排序?
- (NSNumber *)sortNumber {
NSNumber *sum = [NSNumber numberWithFloat:([self.capacity floatValue]/[self.availability floatValue])];
return sum;
}
它被定義爲xcdataModel中的一個Int32,並被這個類調用來排序。
- (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];
編輯:是的,在寒冷的白天,這需要更多的解釋。我會盡力解釋這個項目。這是一個CoreData應用程序,值'容量'和'可用性'是通過用SAX解析XML文件並將它們附加到它們被定義爲字符串的被管理對象模型派生的,最初它們在XML中是數字。
然後,這些被定義在一個類中,上面的計算已經被創建並附加到相同的對象模型(如果上面的代碼是正確的,那麼這也許是問題所在)。所有這些都是爲了獲得我想用來對TableView進行排序的百分比值。 (順便說一句,我意識到他們需要交換,oops)代碼的第二位是使用NSFetchResultsController和ManagedObjectContext發生這種情況的地方。我知道這一點工作,因爲我也排序此列表的其他屬性設置爲如果selectedSegmentIndex == 0等,他們都排序正確。
我希望這樣做更有意義。
這是一個CoreData應用程序?你能否請多包含一些代碼來幫助我們解決問題? – slf 2009-09-25 03:10:25
我已經嘗試在項目中添加更多細節,參見上文。像往常一樣,這些東西很難知道停止在哪裏。管理對象模型很難發佈,但基本上它只附加了一個關係,這不是這個標準。也許它應該是? – Jim 2009-09-26 13:28:18