Отправка сообщений между двумя отдельными объектами - PullRequest
0 голосов
/ 05 ноября 2011

Скажем, например, у меня есть два объекта A и B, и у этого объекта B есть метод с именем 'update'.

Внутри объекта A у меня есть строка, которая отправляет сообщение [objectB update]. Однако я получаю сообщение:

error 'objectB' undeclared (первое использование в этой функции).

Дело в том, что objectB был объявлен в моем Appdelegate вместе с objectA. Кажется немного глупым, что objectA не может напрямую сообщать objectB. Я понимаю, что это может быть какая-то проблема с областью видимости, но мой вопрос - действительно ли я пытаюсь сделать объект глобальным? или я настраиваю систему передачи указателей вперед и назад, делая вещи довольно грязными?

Ответы [ 2 ]

2 голосов
/ 05 ноября 2011

Возьмем это:

[self.objectB update];

И ваш AppDelegate.m, вы должны написать это:

@synthesize objectB;

Я считаю, что это объект приватный или не метод получения.

1 голос
/ 05 ноября 2011

Поскольку objectB является членом делегата приложения , доступ к нему осуществляется следующим образом.

YourAppDelegate *appDelegate;
appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.objectB update];
...