在我的第一个视图控制器中,我正在做的是从我的 viewDidLoad 中的 UIMangedDocument 设置 NSManagedObjectContext
@property(strong, nonatomic) NSManagedObjectContext *managedObjectContext;
- (void)viewDidLoad
{
     NSURL *filePath = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
     filePath = [filePath URLByAppendingPathComponent:@"Locations"];
     UIManagedDocument *document = [[UIManagedDocument alloc] initWithFileURL:filePath];
    //Create if it doesn't exist
     if (![[NSFileManager defaultManager] fileExistsAtPath:[filePath path]]) {
        //Async save
        [document saveToURL:filePath forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
             if (success) {
                self.managedObjectContext = document.managedObjectContext;
             }
         }];
    } else if (document.documentState == UIDocumentStateClosed){
        [document openWithCompletionHandler:^(BOOL success){
             //Open it, don't need to refetch stuff
             if (success) {
                self.managedObjectContext = document.managedObjectContext;
             }
         }];
     } else {
         self.managedObjectContext = document.managedObjectContext;
     }
 }
然后我通过我的 NSMangedObject 子类上的类别方法插入一个新对象
[Location createLocationWithName:@"Maui" inManagedObjectContext:self.managedObjectContext];
只是调用此代码
Location *location = [NSEntityDescription insertNewObjectForEntityForName:@"Location" inManagedObjectContext:managedObjectContext];
[managedObjectContext save:nil];
现在我遇到的问题是,当我选择一个具有公共 NSManagedObjectContext 属性的新 ViewController 并将其设置为 prepareForSegue 中的这个 managedObjectContext 时,destinationViewController 中的 NSFetchedResultsController 不会立即接受此更改。在我来回导航几次后,它最终会看到我在上面创建的 Location Maui。为什么将新对象插入 managedObjectContext 然后将其传递给另一个视图控制器的任何想法都不能反映这种变化?
非常感谢任何见解。