我的代码存在语义问题。我有一个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];
它说这是一个语义问题,错误是将FirstViewController * const_strong发送到不兼容类型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]; }
答案 0 :(得分:1)
您需要指定FirstViewController实现协议。类似的东西:
@interface FirstViewController () <UIWebViewDelegate>
@end
编译器当前警告您,您正在设置一个委托,该委托未指定它实现了所需的协议,因此不执行编译检查。
答案 1 :(得分:0)
您的视图控制器应通过在<UIWebViewDelegate>
行的末尾添加“@interface
”来指定它符合UIWebViewDelegate
,或者在@interface
行中的.h
声明中@interface MyViewController : UIViewController <UIWebViewDelegate>
:
.m
或者@interface MyViewController () <UIWebViewDelegate>
文件中的私有类扩展(如果有的话):
{{1}}
请参阅使用Objective-C编程指南中的Conforming to Protocols。