Как установить переменную экземпляра в одном объекте из другого? - PullRequest
1 голос
/ 31 июля 2011

У меня есть объект AppController, который содержит переменную экземпляра int adventures. Это связано с меткой через Interface Builder.

У меня также есть подкласс NSWindowController, называемый PopUpWindow. При нажатии кнопки ввода значение в текстовом поле во всплывающем окне должно изменить переменную adventures в объекте AppController.

Даже после использования @public и @package для adventures оно не меняется. Я также пытаюсь использовать

[self willChangeValueForKey:@"adventures"];

из класса PopUpWindow. Будет ли это работать в разных классах? Как я могу это сделать?

1 Ответ

1 голос
/ 31 июля 2011

Это может быть хорошим местом для NSNotifications, вы можете зарегистрировать AppController для именованного уведомления, мне даже не важно, какой объект отправляет его, вы PopUpWindow затем можете опубликовать уведомление о том, что что-то изменилось, что ваш AppController может получить уведомление. Другая возможность - если PopUpWindow принадлежит контроллеру AppController, он может иметь AppController в качестве делегата и отправлять сообщение своему делегату. Вы строка кода

[self willChangeValueForKey:@"adventures"];

, кажется, предполагает, что происходит в вашем AppController, но, таким образом, бесполезно, потому что это только скажет наблюдателям о вашем AppController.adventures, что он изменился, и вы хотите, чтобы он работал по-другому, я полагаю, кнопка ввода щелкнув, он отправляет вам сообщение PopUpWindow NSWindowController.

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