下面的代碼來自this post的接受答案,關於在具有核心數據的表視圖中的實施搜索欄。它使用兩個提取結果控制器(FRC)。一個用於「普通」表格視圖,一個用於搜索結果表格視圖。它使用輔助方法來決定哪些FRC用於表格視圖數據源方法,FRC委託方法等。爲什麼searchFetchedResultsController設置爲零?
我瞭解大部分代碼,除了以下部分。我應該放什麼代碼來取代"update the filter..."
的評論?爲什麼我應該將self.searchFetchedResultsController和它的委託設置爲零?
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSInteger)scope
{
// update the filter, in this case just blow away the FRC and let lazy evaluation create another with the relevant search info
self.searchFetchedResultsController.delegate = nil;
self.searchFetchedResultsController = nil;
...
}
「如果你看着fetchedResultsController方法」..你能更準確地確切地說明哪種方法嗎?那是' - (NSFetchedResultsController *)newFetchedResultsControllerWithSearch:(NSString *)searchString '? – Philip007
我仍然無法理解「FRC是懶惰創建的代碼 - 只有它是零」的代碼部分。你可以在這裏複製粘貼該部分?您發佈的鏈接中的「FRC創建代碼」爲 – Philip007
。如果沒有FRC'self.fetchedResultsController'要創建一個新的FRC。您將在該方法中找到獲取權限。看起來實際上比我想象的還要糟糕!這種方法每次都會重新創建FRC **。這是一個非常不理想的模式。 – Mundi