我有一個管理對象遊覽有很多點。 當我加載要顯示在表格中的點時,我用作我的數據遊覽點。Coredata和關係的自動排序
每個點都有一個字段'level',表示它們應該出現的順序。 如何讓tour.points根據point.level自動排序?
我是否需要對排序描述進行單獨的提取,還是有直接的方法?
我有一個管理對象遊覽有很多點。 當我加載要顯示在表格中的點時,我用作我的數據遊覽點。Coredata和關係的自動排序
每個點都有一個字段'level',表示它們應該出現的順序。 如何讓tour.points根據point.level自動排序?
我是否需要對排序描述進行單獨的提取,還是有直接的方法?
使用核心數據填充表格視圖的最佳方式是NSFetchedResultsController
。 FRC具有一個獲取請求,您可以將請求附加到謂詞和排序描述符。
在檢查「使用核心數據」時,您可以從Xcode模板中複製一些現成的示例代碼。
在獲取的結果控制器創建方法中,添加謂詞和排序描述符。我假設你正在獲取名爲Point
的實體,該實體與Tour
有一對一的關係。
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"tour = %@", tourObject];
fetchRequest.sortDescriptors = @[[NSSortDescriptor
sortDescriptorWithKey:@"level" ascending:YES]];
根據我的經驗,我相信你將不得不做一個單獨的排序。作爲一個事物的參考,你可以過濾陣列,NSPredicate做:
我希望你將不得不這樣做將是這一類的東西:
NSSortDescriptor *level = [[NSSortDescriptor alloc] initWithKey:@"level" ascending:YES];
NSArray *pointSortedByLevel = [results sortedArrayUsingDescriptors:[NSArray arrayWithObjects:level, nil]];
,其中結果是你的NSArray在您的對象中找到的積分之旅遊覽
謝謝,我只是想知道是否會有'註釋'的方式,如JPA。但是額外的請求不是問題,我已經有了功能。 – 2014-10-18 12:53:15
我不明白在這方面的「註釋」。 – Mundi 2014-10-18 13:24:48
在JPA中,您可以註釋@OrderBy(「lastname ASC」)這樣的字段,因此該字段在被調用時會自動排序。保存必須做一個額外的查詢。 – 2014-10-18 15:34:30