Свойство manageObjectContext NSManagedObject равно нулю

Я пытаюсь создать временный контекст управляемого объекта, и после нескольких экранов, когда пользователь вводит информацию, я объединяю этот контекст с основным контекстом (, чтобы гарантировать отсутствие вставленных «неполных» объектов ). Вот как я создаю свой временный контекст и как вставляю в него объект:

if (!self.someManagedObject) {

    NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:@[[NSBundle mainBundle]]];
    NSPersistentStoreCoordinator *storeCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
    [storeCoordinator addPersistentStoreWithType:NSInMemoryStoreType configuration:nil URL:nil options:nil error:nil];

    NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] init];
    [managedObjectContext setPersistentStoreCoordinator:storeCoordinator];

    self.someManagedObject = [NSEntityDescription insertNewObjectForEntityForName:@"SomeObject" inManagedObjectContext:managedObjectContext];
    NSLog(@"%@", self.someManagedObject.managedObjectContext);
}

Это часть viewDidLoad. В консоли видно, что контекст управляемого объекта имеет значение.

Однако сразу после этого if утверждение (даже внутри viewDidLoad, self.someManagedObject.managedObjectContextравно нулю. Я понимаю, почему локальная переменная больше не будет доступна (, она просто выходит за рамки ), но свойство управляемого объекта все равно должно быть установлено, верно?

Я знаю, что могу создать свойство для хранения контекста управляемого объекта, но лучше заставить его работать таким образом.

5
задан Imirak 3 August 2012 в 00:30
поделиться