2012-01-17 7 views
-1

人。 SafariでWebViewからリンクを開くことを実現しようとしています。ときどき完璧に動作し、時には悪いアクセスを示します。 これは私のコードです:SafariのURLを開いて不明なものがありました

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
    urlWillShow = [request mainDocumentURL]; 
    return YES; 
} 
- (IBAction)openInSafari { 
     NSLog(@"Will try to open in safari link: %@", [urlWillShow absoluteString]); 
    if ([[urlWillShow scheme] isEqualToString:@"http"] || [[urlWillShow scheme] isEqualToString:@"https"]) { 
     BOOL canLoad = [[UIApplication sharedApplication] canOpenURL:urlWillShow]; 
     if (canLoad == YES) { 
      [[UIApplication sharedApplication] openURL:urlWillShow]; 
     } 
    } 
} 
+3

デバッグする情報が不十分です。どのラインに問題がありますか? –

+0

あなたが実際にBAD_ACCESSを取得する「時」の間にurlWillShowにURLを持っているかどうか確認してください。 – sElanthiraiyan

+0

ARCを使用していますか、手動で保持/解放していますか? –

答えて

0

を使うと、リクエストURL]の代わりに[要求mainDocumentURL]

あなたのアクションがある前にその可能性が解放されるようurlWillShow(ARCを使用していない場合)。また、あなたが保持する必要がありますと呼ばれる。

また、UIWebViewをIBOutletにし、urlWillShowをivarに格納する代わりに、アクションメソッドで[[self.webView request] URL]を使用できます。

+0

[リクエストURL] - 別のURL。例えば。私はこのサイトが必要です:habr.ru、しかし、それはサイトの後にロードされている広告が含まれているので、[リクエストURL]は別のものになります... – werbary

関連する問題