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