共有インスタンスを返す DataManager クラスがあります。
+ (DataManager *)sharedInstance;
{
static DataManager *sharedInstance = nil;
static dispatch_once_t pred;
dispatch_once(&pred, ^{
sharedInstance = [[DataManager alloc] init];
});
return sharedInstance;
}
ここでは、managedObjectContext、managedObjectModel、persistentStoreCoordinator を追跡します。
表示するアイテムを引き出す方法もあります。
- (NSArray *)getItems
{
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Item"];
return [[self managedObjectContext] executeFetchRequest:fetchRequest error:nil];
}
これで getItems を呼び出してアイテムを個別に変更すると、メイン アプリにビュー コントローラーが表示されます。たとえば、set item.itemName = @"testName"; 次に、save メソッドを呼び出します。
また、TodayViewController で getItems メソッドも呼び出す iOS 8 もあります。managedObjectContext の保存を検出する NSNotification があります。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refetchItems) name:NSManagedObjectContextDidSaveNotification object:[[DataManager sharedInstance] managedObjectContext]];
これらの再フェッチされたアイテムは呼び出されますが、古い NSManagedObjects を返します。たとえば、itemName は @"testName" に変更されていません。
どこが間違っていますか?他のコードを見る必要がある場合はお知らせください。
ありがとう!