实现委托方法,但仍然收到警告?

时间:2010-09-23 04:44:06

标签: iphone objective-c uiwebviewdelegate

我得到了一个奇怪的警告,特别是这个:

warning: class does not implement the 'UIWebViewDelegate' protocol

...当我在我的应用程序中使用这些方法时:

-(void)webViewDidStartLoad {
    ...
}

-(void)webViewDidFinishLoad {
    ...
}

...甚至在将UIWebView的委托设置为self之后,我仍然收到此警告,并且永远不会调用这些方法(NSLog不提供任何结果。)

任何人都可以查明这里发生的事情吗?提前谢谢!

2 个答案:

答案 0 :(得分:3)

我认为您的委托方法不正确。它们不应该是:

- (void)webViewDidStartLoad:(UIWebView *)webView
{
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
}

答案 1 :(得分:3)

正如'特别是@No on'所说,你的方法没有正确宣布。这就是为什么根本不调用这些方法的原因。

警告有不同的原因。这是因为您的接口定义未声明它实现了UIWebViewDelegate协议。

@interface MyClass : NSObject <UIWebViewDelegate> {
...
}
...
@end

接口是否声明协议实际上在运行时没有任何后果,它只是对编译器的一个提示,它允许它发出类似你看到的警告,或者如果你没有实现警告方法。