你可能不想要NSFetchedResultsController。結果控制器通常與UITableViewController一起用作輔助對象來填充表。
如果這就是你想要的,繼續。但是,如果您正在尋找從核心數據上下文中獲取實體,則只需要一個NSFetchRequest。假設你有一個名爲Person的核心數據對象。比方說,我們希望所有名爲「Ryan」的實體
NSFetchRequest *fetch = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
NSString *nameToGet = @"Ryan";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@", nameToGet];
[fetch setPredicate:predicate];
NSError *error = nil;
NSArray *results = [[self managedObjectContext] executeFetchRequest:fetch error:&error];
if(results) {
NSLog(@"Entities with that name: %@", results);
for(Person *p in results) {
NSLog(@"person = %@", p);
}
return results;
} else {
NSLog(@"Error: %@", error);
}
return nil;
因此您創建了一個提取請求。 NSPredicate就像SQL語句的where條件。所以你創建一個格式爲(there are tons of options for creating predicates)的謂詞。設置請求的謂詞,然後告訴你的managedObjectContext執行獲取請求。請求的任何結果都將返回到返回的數組中。數組中的每個對象都將是Person類型的對象。
如果您正在尋找使用NSFetchedResultsController,它基本上是相同類型的東西。但是,您使用1個不可變的提取請求創建控制器,因此它總是獲取相同的數據。如果你想要不同的數據,你需要創建另一個控制器。如果你只堅持NSFetchRequests(我從我的用戶界面中分配我的數據層,所以使用控制器對我來說並不是很有用),你可以查詢你想要的任何數據並返回結果。
「NSFetchedResultsController」的文檔包含詳細的示例代碼以及使用它的六個不同示例應用程序。你有沒有一個具體的問題答案? – 2013-02-08 18:05:24
那麼現在我至少知道在哪裏看,謝謝!我被不同的網站拋棄,創建了模型包裝器和模型對象上下文。 – jacobronniegeorge 2013-02-08 18:15:08