我有一個段控制與5項,選擇每個項目數據過濾器的一些標準和顯示不同的結果。段控制中的所有五個選項使用相同的實體來獲取數據。核心數據獲取請求優化與段控制
目前我有一個fetchresultcontroller,並且每當在段控件中有值更改時,我都會從具有不同謂詞的相同實體中獲取數據,並用新數據重新載入表。
我期待優化這一點。我是以正確的方式做還是以正確的方式做到這一點?
此外,更改已獲取數據的升序和降序之間的排序順序的最佳方法是什麼?
謝謝你。
我有一個段控制與5項,選擇每個項目數據過濾器的一些標準和顯示不同的結果。段控制中的所有五個選項使用相同的實體來獲取數據。核心數據獲取請求優化與段控制
目前我有一個fetchresultcontroller,並且每當在段控件中有值更改時,我都會從具有不同謂詞的相同實體中獲取數據,並用新數據重新載入表。
我期待優化這一點。我是以正確的方式做還是以正確的方式做到這一點?
此外,更改已獲取數據的升序和降序之間的排序順序的最佳方法是什麼?
謝謝你。
你能發表一些代碼片段嗎?
如果你已經獲取了一組MangedObjcts的你可以用一個排序Descirptor重新排序的NSArray:sortedArrayUsingDescriptors
- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors
如果你只取少量NSManagedObjects的,有可能是沒有太大的優化做完了。 CoreData及其相應的類(例如,您正在使用的FetchResultsController,它被設計爲與UITableViews一起工作得很好)爲您執行了大部分重要工作。
就升序和降序之間改變排序順序的最佳方式而言;這是在像這樣確定的:
NSSortDescriptor *sorter = [[NSSortDescriptor alloc] initWithKey:@"someEntityProperty" ascending:YES/NO];
如果設置上升到YES,你會得到你NSManagedObjects回到您提供的鍵進行排序從小到大遞增)。如果您將其設置爲NO,則會將其從最大到最小(降序)。