что делает Protocol * x = @protocol (aProtocolName) в цели c? - PullRequest
0 голосов
/ 17 ноября 2011

Я обнаружил, что могу делать такие вещи в objc:

Protocol* aProtocol = @protocol(NSObject);

но для чего используется эта техника?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2011

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

[anotherObject conformsToProtocol:aProtocol];
0 голосов
/ 17 ноября 2011

У вас может быть, например, контейнер, который предлагает сервис для проверки того, что все его содержимое соответствует протоколу.

Protocol *contentProtocol;

- (void)setContentProtocol:(Protocol *)proto;

Тогда пользователь контейнера может вызвать:

[container setContentProtocol:@protocol(MyProtocol)];

И где-то в контейнере может быть сделана проверка:

[[item class] conformsToProtocol:contentProtocol];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...