我有一個主要的NSManagedObjectContext,它是在appDelegate中創建的。從一個NSManagedObjectContext保存的更改不反映在主NSManagedObjectContext
知道,我正在使用另一個NSManagedObjectContext編輯/添加新的對象,而不影響主NSManagedObjectContext,直到我保存它們。
當我保存第二個NSManagedObjectContext時,更改不會反映在主NSManagedObjectContext中,但是如果從模擬器打開.sqlite數據庫,則更改已正確保存到.sqlite數據庫中。無論我是否再次獲取數據,即使創建了第三個NSManagedObjectContext,我也無法看到第二個NSManagedObjectContext發生的更改,但這些更改現在都在磁盤上...
如果我退出並打開應用程序,所有的變化都在那裏。
什麼會導致主NSManagedObjectContext不能看到商店的新變化?
在這種方法之前,我使用了相同的NSManagedObjectContext和undoManager,但我想將它改爲使用兩個不同的NSManagedObjectContext。
謝謝,
m。
second NSManagedObjectContext save:
-----------------------------------------
NSError* error = nil;
if ([managedObjectContext hasChanges]) {
NSLog(@"This new object has changes");
}
if (![managedObjectContext save:&error]) {
NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
}
else {
NSLog(@" %@", [error userInfo]);
}
}
我認爲NSManagedObjectContextDidSaveNotification沒有必要/強制性的,我讀過其他職位,那就是我不明白。我會嘗試你的建議,並在這裏再次發佈。謝謝! – mongeta 2011-05-27 18:45:47
謝謝,完美無缺! – mongeta 2011-05-28 16:29:10
不客氣! – octy 2011-05-29 02:10:23