2012-06-15 74 views
2

我正在執行數據提取以在UITableView中顯示它,我執行了提取操作,但是我想按創建日期或任何排序方法對它們進行排序。如何在覈心數據中對提取進行排序

這裏是方法:

-(NSArray *) lesStations { 

NSManagedObjectContext *moc = [[AppDelegate sharedAppDelegate]managedObjectContext]; 

NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Station" inManagedObjectContext:moc]; 

[fetch setEntity:entity]; 
NSError *error; 

NSArray *result = [moc executeFetchRequest:fetch error:&error]; 

if (!result) { 
    return nil; 
} 

return result; 

} 

回答

5

這應該工作

-(NSArray *) lesStations { 

    NSManagedObjectContext *moc = [[AppDelegate sharedAppDelegate]managedObjectContext]; 

    NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Station" inManagedObjectContext:moc]; 

    [fetch setEntity:entity]; 
    NSError *error; 

    NSArray *result = [moc executeFetchRequest:fetch error:&error]; 

    if (!result) { 
     return nil; 
    } 

    NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:"creationDate" ascending:YES]; 



    NSArray *sortedResults = [result sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]]; 

    [sort release]; 

    return sortedResults; 

} 
+0

非常感謝你..它的岩石:) – Tidane

+0

很高興我能幫助:) – jerrylroberts

0

您可以按設定取,例如sortDescriptors擷取結果

fetch.sortDescriptors = [NSArray arrayWithObjects:[[NSSortDescriptor alloc] initWithKey: ascending: selector:], nil]; 
NSError *error; 
NSArray *result = [moc executeFetchRequest:fetch error:&error]; 
3

你有2種選擇:獲得排序結果或排序NSArray的結果:
NSFetchRequest可以設置一個NSArrayNSSortDescriptor

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"place" ascending:NO]; //the key is the attribute you want to sort by 
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]]; 

您也可以排序返回NSArray(請參閱NSArray的所有實例方法,從sortedArray...開始
我建議在使用CoreData時使用第一種方法。第二個是使用數組時只是信息......

相關問題