我在这里错过了什么?我一直在
'UIApplication'没有可见的@interface声明选择器'openUrl:'
#import "ViewController.h"
@interface ViewController ()
@property (strong, readwrite, nonatomic) IBOutlet UIWebView *webView;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
www.delegate = self;
[www loadRequest:[NSURLRequest
requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];
}
- (BOOL) webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType
{
if ( navigationType == UIWebViewNavigationTypeLinkClicked ) {
NSLog(@"%@", [[request URL] absoluteString] );
[[UIApplication sharedApplication] openUrl:[[request URL] absoluteString]];
}
return YES;
}
@end
答案 0 :(得分:0)
据推测,错误消息实际上并未指出根本没有方法称为openURL:
,但UIApplication
上没有名为openURL:
的方法NSString
参数,因为您试图传入此处。
以下应工作:
[[UIApplication sharedApplication] openURL:[request URL]];
正如您所见from the documentation,openURL:
采用NSURL
参数而不是NSString
。
答案 1 :(得分:0)
为什么会收到此错误并且您错误地拨打了电话?
是的,您的代码不正确。
[[UIApplication sharedApplication] openUrl:[[request URL] absoluteString]];
上面的代码显示错误的语法,因为你调用absoluteString.So它肯定显示错误。
openURL
没有这样的参数'NSString'
所以你要做的是你可以用URLWithString调用字符串url如果你的absoluteString有URL并且你可以直接调用那个URL
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"https://www.google.co.in/#q=STACKOVERFLOW+IOS+QUESTIONS"]];