2015-03-22 3 views
0

Я новичок в объекте-c, и у меня есть некоторые проблемы, передающие переменные ... Я устанавливаю NSManagedObjectContext в контроллере представления, но когда я пытаюсь получить к нему доступ из другого контроллера просмотра, он возвращает ноль. Общественности переменная managedObjectContext получает правильно установить в myProjectsViewController:контекст возвращает null при вызове

if (document.documentState == UIDocumentStateNormal) { 
    NSManagedObjectContext *context = document.managedObjectContext; 
    _managedObjectContext = context; 
    NSLog(@"context = %@",context); 
} 

Я затем попытаться получить к нему доступ в myTasksViewController:

-(void)setManagedObjectcontext:(NSManagedObjectContext*)managedObjectContext 
{ 
myProjectsViewController *mpvc; 
_managedObjectContext = mpvc.managedObjectContext; 
} 

На данный момент, она всегда возвращает нуль. Любая помощь приветствуется!

ответ

0

Если я правильно его читаю, похоже, что вы создаете новый экземпляр myProjectsViewController вместо ссылки на ожидаемый объект.

Objective-C - объектно-ориентированный язык программирования. Когда ваше представление инициализируется, он создает «экземпляр» myProjectsViewController. Код, который вы показываете в myTasksViewController, создает еще один «экземпляр» myProjectsViewController. Вместо этого вам нужно будет хранить значение где-нибудь, например, синглтон, или, возможно, передать значение с первого контроллера представления во второй контроллер просмотра во время перехода.

Чтобы попытаться привести пример, допустим, у нас есть план создания Ford Mustang 2015 года. Я использую этот план, чтобы построить Ford Mustang 2015 года, и затем я установил радио на свою любимую станцию. Если бы вы взяли одни и те же чертежи и создали еще один, идентичный 2015 Mustang Mustang, ваш Mustang не имел бы представления о том, на какой радиостанцию ​​мой Mustang был настроен, потому что, хотя он построен из той же модели, это разные экземпляры.

Надеюсь, это поможет. Кто-то еще может дать вам лучший пример. Но вы можете захотеть немного вычислить объектно-ориентированное программирование, чтобы понять, помогает ли вам получить конкретное представление о классах, объектах и ​​экземплярах объектов.

+0

Да, вы правы. Спасибо за разъяснения. – gumbynr

Смежные вопросы