Проблема привязки основного контроллера представления данных - PullRequest
0 голосов
/ 13 мая 2011

У меня есть основанное на документе приложение с контроллером представления, который содержит таблицу, контроллер массива и кнопки добавления / удаления. Я связал контекст управляемого объекта с владельцем файла (myViewController) и установил команды свойства / синтеза для myMOC.

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

NSWindow *myWindow = [[self view] window];
NSWindowController *myWindowController = [myWindow windowController];
id myDoc = [myWindowController document];

self.myMOC = [myDoc managedObjectContext];

Однако при вызове этого из awakeFromNib или init генерируется значение nil для myWindow. Любая помощь приветствуется. Спасибо

1 Ответ

0 голосов
/ 13 мая 2011

Я предполагаю, что myView находится в своем собственном кончике, когда вы загружаете его, а затем вы добавляете представление в окно, которое создается в другом кончике из-за того, что myViewController является владельцем файла. Это верно? Если это так, [[self view] window] должно возвращать nil, так как представление не было добавлено в окно, когда вызывается либо awakeFromNib, либо init. Вам нужно будет запустить установочный код myMOC после добавления myView в окно. Попробуйте разбить приведенный выше код на метод -setupMOC и вызывать его после добавления представления к окну или суперпредставлению. Если вы делаете это прямо сейчас, вы также можете избежать вызова [self executeSelector: @selector (setupMOC) withObject: nil afterDelay: 0.0] в awakeFromNib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...