0

我只是不容停止搜索並閱讀了「謂詞的變化」,但我仍然鴕鳥政策知道如何解決我的問題,所以...我有什麼是:不同NSpredicates多tableviews

1 - 幾種不同的單元格和每個單元格的表格都有多個文本框。

2 - 用戶按下其中一個文本框,然後出現一個tableview(彈出框內)。

3 - 此popoverTableview具有所有核心數據「工作」,並且假設提供數據以插入到按下的文本字段中。

4 - 一切工作正常...除了事實,我需要的謂詞來改變每次用戶通過例如tableview1 tableview2。

5 - 下面是我的popoverTableview中的NSFetchedResultsController方法,我嘗試了許多方法,如:「if's」; 「開關」;也指向tableviews中的textfield標籤,而不是任何東西。我想我不需要將緩存設置爲零,因爲它已經設置爲零...還嘗試刪除:if(_fetchedResultsController!= nil)return _fetchedResultsController;

而且沒有什麼!!!我需要了解什麼?我沒有得到什麼?我在這一天上失去了日子。HELP!

- (NSFetchedResultsController *)fetchedResultsController 
{ 
if (_fetchedResultsController != nil) 
{ 
    return _fetchedResultsController; 
} 

NSFetchRequest *fetchRequestList = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entityList = [NSEntityDescription entityForName:@"List" inManagedObjectContext:self.managedObjectContext]; 
[fetchRequestLista setEntity:entityList]; 

TableViewOne *table1 = [[Cobertura alloc]init]; 
TableViewTwo *table2 = [[Cobertura alloc]init];  

if (table1 textFieldShouldBeginEditing:table1.textFieldPressed) 
{ 
fetchRequestList.predicate = [NSPredicate predicateWithFormat:@"%K IN %@", @"reference", arrayTableview1]; 
} 

if (table2 textFieldShouldBeginEditing:table2.textFieldPressed) 
{ 
fetchRequestList.predicate = [NSPredicate predicateWithFormat:@"%K IN %@", @"reference", arrayTableview2]; 
} 

NSSortDescriptor *cellTitle = [[NSSortDescriptor alloc] initWithKey:@"reference" ascending:YES]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:cellTitle, nil]; 
[fetchRequestLista setSortDescriptors:sortDescriptors]; 

_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequestLista managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"referencia" cacheName:nil]; 
_fetchedResultsController.delegate = self; 
self.fetchedResultsController = _fetchedResultsController; 

return _fetchedResultsController; 
} 

在此先感謝

回答

1

你只需要你無明確FRC。然後讓FRC執行提取。

FRC的自定義getter方法看起來不錯。它確保tableview1和tableview2的謂詞不同,並相應地構造FRC。但是,只有在FRC爲零的情況下,它才能完成所有這些工作。如果不是,它只是返回後臺實例變量_fetchedResultsController,其餘的代碼根本不被執行;這就是爲什麼當你切換表視圖時你需要明確地刪除你的FRC。