Я знаю, что должен записать:
[delegate respondsToSelector:@selector(myMethod:)]
Но компилятор жалуется, что respondsToSelector не является методом в протоколе, который является соответствующим, Однако я видел многих использование примера кода это, как дела он?
Ваш @protocol
должен реализовать
, просто обновите определение протокола, чтобы оно выглядело так:
@protocol MyProtocol <NSObject>
Грег Мартин знает ваш ответ, но вот краткое объяснение , почему компилятор жалуется:
RespondsToSelector: метод
является частью протокола NSObject
, поэтому, когда вы пытаетесь отправить это сообщение своему удаленному объекту (типа id
), компилятор не имеет возможности зная, что ваш делегат может справиться с этим.