0

我的代码存在语义问题。我有一个 UIWebView 并且我添加了一条错误消息,因此如果没有互联网连接,则会弹出一个错误。

这是我的 .m 文件中我的 UIWebView 的编码

- (void)viewDidLoad {
[super viewDidLoad];
NSString *fullURL = @"http://example.com";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[website setDelegate:self];
[website loadRequest:requestObj]; }

错误在此代码上

[website setDelegate:self];

它说这是一个语义问题,错误是 Sending FirstViewController *const_strong to parameter of in compatible type id

如果没有互联网连接,这是错误消息的代码

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"error" message:@"error connecting to the internet" delegate:self
cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show]; }
4

2 回答 2

1

您需要指定 FirstViewController 实现协议。就像是:

@interface FirstViewController ()  <UIWebViewDelegate>
@end

编译器当前警告您,您正在设置一个委托,该委托未指定它实现所需的协议,因此不执行编译检查。

于 2013-05-26T21:40:26.400 回答
0

UIWebViewDelegate你的视图控制器应该通过在行尾添加“ <UIWebViewDelegate>”来指定它符合@interface,或者在主@interface声明中.h

@interface MyViewController : UIViewController <UIWebViewDelegate>

或文件中的私有类扩展名(如果有的话).m

@interface MyViewController () <UIWebViewDelegate>

请参阅使用 Objective-C 编程指南中的符合协议。

于 2013-05-26T21:39:31.440 回答