'UIApplication'没有可见的@interface声明选择器'openUrl:'

时间:2016-08-21 13:56:11

标签: ios objective-c nsurl uiapplication openurl

我在这里错过了什么?我一直在

  

'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

2 个答案:

答案 0 :(得分:0)

据推测,错误消息实际上并未指出根本没有方法称为openURL:,但UIApplication上没有名为openURL: 的方法NSString参数,因为您试图传入此处。

以下工作:

[[UIApplication sharedApplication] openURL:[request URL]];

正如您所见from the documentationopenURL:采用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"]];