2016-08-21 98 views
-2

我在這裏丟失了什麼?我不斷收到'UIApplication'沒有可見的@interface聲明選擇器'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 
+0

耐心,蚱蜢。 – matt

回答

0

據推測,該錯誤信息實際上是指定不就是有沒有一種方法,在全稱爲openURL:,但在UIApplication上沒有方法,稱爲openURL:,您需要輸入NSString參數,因爲您試圖在此傳入。

以下應該工作:

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

正如你可以看到from the documentationopenURL:需要一個NSURL參數,而不是一個NSString

+1

您需要注意拼寫和大小寫。所有的答案都提到'openURL:',除了你說的_should_ work的代碼是'openUrl:'。 – rmaddy

+0

修正了,謝謝。複製麪食編程的危險也適用於SO! – nhgrif

0

爲什麼你會得到這個錯誤,並且你打錯電話了?

是的,你的代碼是不正確的。

[[UIApplication sharedApplication] openUrl:[[request URL]   absoluteString]]; 

上面的代碼顯示不正確的語法,因爲您稱爲absoluteString.So它絕對顯示錯誤。

有沒有這樣的說法「的NSString」,這所採取的OpenURL

所以,你想要做什麼,是你可以調用字符串的URL與URLWithString如果您absoluteString有網址和uyou可以直接調用該網址

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"https://www.google.co.in/#q=STACKOVERFLOW+IOS+QUESTIONS"]]; 
相關問題