Отправка класса в параметр несовместимого типа 'id <UIWebViewDelegate>' Внимание? - PullRequest
6 голосов
/ 13 октября 2011

Я не ожидал, что моя программа вызовет шум, когда я написал эту строку кода:

[twitterFeed setDelegate:self];

twitterFeed - это UIWebView, предназначенный для перехода на мобильный сайт Twitter, но это не относится к делу. Я получаю сообщение об ошибке "Отправка" SocialView (имя класса, в котором он находится) параметру несовместимого типа "id". Я не знаю, как это исправить. Есть ли способ сделать это быстро и без слишком много реструктурировать мой код?

Также стоит отметить, что SocialView - это UIViewController, если это вообще важно для вас.

Ответы [ 3 ]

10 голосов
/ 19 августа 2013

Если вы используете статический метод (с +), вы можете вручную получить предупреждение с помощью приведения:

[twitterFeed setDelegate:(id<UIWebViewDelegate>)self];

Если вы используете метод экземпляра (с -),Вы должны следовать чоуну.

10 голосов
/ 13 октября 2011

Вы можете указать <UIWebViewDelegate> в объявлении интерфейса SocialView и посмотреть, исправляет ли это предупреждение:

@interface SocialView : UIViewController <UIWebViewDelegate> {
...
}
0 голосов
/ 13 октября 2011

Вы, вероятно, хотите прочитать о том, как используются делегаты. Как делегат работает в target-C? Убедитесь, что знаете, что делаете, когда используете их.

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