1

次のコードを使用して、サファリで URL を開こうとしています。

- (IBAction)webButton:(id)sender {

    NSString *url = @"www.google.com";

    url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    [[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]];


}

しかし、アプリがクラッシュするたびに。

誰かが同じような状況にありましたか?

ss オフ クラッシュは次のとおりです: http://dl.dropbox.com/u/77033905/urlInSafariCrashesUp.png

アップデート:

NSString *recipients = @"mailto:first@example.com?subject=Hello from Croatia!";
    NSString *body = @"&body=It is sunny in Croatia!";

    NSString *email = [NSString stringWithFormat:@"%@%@", recipients, body];
    email = [email stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:email]];

これはメールを開くためのものですが、sharedApplication でも同じです。までクラッシュします。

更新 2: コンソール ログ: argv char ** 0xbffff520 *argv char * 0xbffff658 **argv char '/' argc int 1

更新 3: IBAction を呼び出しますが、クラッシュします。このコードをルート ビューで試すと、機能します。IBボタンに追加して接続しましたが、すべて問題ありません。

サブビューで UIApplication sharedApplication を呼び出すことに問題はありますか? 別の方法で電話する必要がありますか?

更新 4:

サブビューで空のIBActionを呼び出しても問題があることがわかりました。そのため、問題は明らかにUIApplicationではなく、サブビューでIBActionを呼び出すことにあります。

- (IBAction)webButton:(id)sender {

  // empty

}

UPDATE 5: 解決策:サブビューで IBAction を呼び出す方法は?

4

2 に答える 2

3

有効な URL を指定していません。URL は常に の形式scheme:<host part>です。

// This is correct and will work:
[[UIApplication sharedApplication] openUrl:[NSURL URLWithString:@"http://www.google.com"]]

// Updated with body and subject:
NSMutableString* url = [NSMutableString stringWithString:@"mailto:"];
[url appendString:@"first@example.com"];
[url appendFormat:@"?subject=%@", [@"Hello from Croatia" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[url appendFormat:@"&body=%@", [@"This is a body" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
于 2012-05-08T20:55:33.003 に答える
1

次のようなことをするとクラッシュしますか

NSString *url = @"http://www.google.com";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

そこには「 http:// 」が必要だと思います。

于 2012-05-08T20:53:35.437 に答える