2014-02-16 53 views
1

在上一個問題中,用戶要求一種方法來在UITableView部分中訂購核心數據對象。我也是這樣,但是我沒有找到實施建議解決方案的方法。核心數據對象在一個部分內排序

所提出的解決方案是創建下面的方法:

- (NSArray*)sortedSectionForIndex:(NSInteger)index 
{ 
    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"priority" ascending:YES]; 
    id section = [[self fetchedResultsController] sections][index]; 
    NSLog(@"INDEX********* = %ld", (long)index); 
    NSArray *objects = [section objects]; 
    NSArray *sorted = [objects sortedArrayUsingDescriptors:@[sort]]; 
    return sorted; 
} 

但我不知道如何在該節對象將是有序的方式調用我的代碼,這裏面的方法。 謝謝。

+0

如果你說這一點:http://stackoverflow.com/questions/21414396/ordering-core-data-objects-inside-a-table-view-section,你必須調用它'cellForRowAtIndexPath' –

+0

也許你應該描述你想要達到的目標。 - 在許多情況下,您只需要兩個(或更多)排序描述符。第一個分爲幾個部分,剩下的部分在部分內部排序。 –

+0

@MartinR,我正在創建一個待辦事項列表應用程序。我正在使用瞬態屬性將核心數據對象分配到各個部分。 fetchedResultsController排序描述符按日期值和優先級值進行排序。在tableView中,有過期,今天,明天,即將到來的部分,...,在今天和明天部分,這些對象確實具有相同的日期/時間值,這意味着這兩個部分內的對象被排序第二個排序描述符(優先級),這是我需要的。但在其他部分中,對象僅按日期排序。 – mvasco

回答

0

您應該爲要排序的部分實現單獨的fetchedResultsController(s)和排序描述符。看看這個示例應用程序中的CompanyMenuTableViewController代碼。其中一個部分使用它自己的fetchedResultsController。您可以使用類似的方法來獨立於其他部分處理每個部分,如果需要,每個部分都有自己的fetchedResultsController。

確保您下載的是最新版本。

http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/