我正在將各種實體保存到核心數據中。每次我需要訪問這些數據時,我都會從Core數據中讀取數據,並將所需的實體分配給一個可變數組。從核心數據加載
if (managedObjectContext == nil)
{
managedObjectContext = [(iForgetAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil)
{
// Handle the error.
NSLog(@"mutableFetchResults == nil");
}
[self setEventsArray:mutableFetchResults];
[eventsTableView reloadData];
問題是,我從應用程序中的許多不同頁面檢索這些數據。
使用核心數據時的最佳做法是什麼?我應該只在App Delegate中加載數據並將數組分配給那裏?
所有的建議非常感謝。
(我已編輯我的問題)所以使用NSFetchedResultsController意味着我可以刪除所有上面的代碼,並只需調用NSFetchedResultsController每當我需要顯示數據?你知道這個很好的教程嗎? – Patrick 2012-07-12 20:59:17
查看Apple示例項目[Core Data Books](http://developer.apple.com/library/ios/#samplecode/CoreDataBooks/Introduction/Intro.html#//apple_ref/doc/uid/DTS40008405-Intro- DontLinkElementID_2),它使用'NSFetchedResultsController'。 – Mundi 2012-07-13 08:40:20