Получение двух ошибок в коде с помощью UIWebViewDelegate - PullRequest
0 голосов
/ 15 января 2012

У меня проблема с этим кодом:

Заголовок:

@interface ViewController : UIViewController {
    IBOutlet UITextField *field;
    IBOutlet UIWebView <UIWebViewDelegate> *web;
}

Реализация:

@protocol UIWebViewDelegate;

- (void)viewDidLoad{
    //some other code here
    webView = [[UIWebView alloc] init];
    webView.delegate = self; 
}

У меня две проблемы. Во-первых, в строке webView = [[UIWebView alloc] init];<code> компилятор генерирует следующее сообщение: Несовместимые типы указателей, присваиваемые UIWebView * _strong из UIWebView * *.
Вторая проблема заключается в том, что в строке webView.delegate = self; появляется сообщение об ошибке: 'Передача ViewController * const_strong параметру несовместимого типа' id'`.

Есть идеи? Любая помощь будет приветствоваться.

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Вы объявили свой webView ivar UIWebViewDelegate. Вы хотели сделать ViewController a UIWebViewDelegate:

@interface ViewController : UIViewController <UIWebViewDelegate>
0 голосов
/ 15 января 2012

Вы используете NIB?Потому что вы используете IBOutlet в своем заголовочном файле, что означает, что к нему подключен NIB.В этом случае ваше веб-представление уже будет создано, и вам не нужен вызов alloc/init.

Кроме того, зачем вы это делаете:

@protocol UIWebViewDelegate;

... @protocol используется, когда вы хотите объявить протокол, а не когда вы хотите указать, что класс соответствует ему.Возможно, взгляните на документацию Apple здесь:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html

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