我正在尝试使用以下代码在safari中打开网址:
- (IBAction)webButton:(id)sender {
NSString *url = @"www.google.com";
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]];
}
但每次应用程序都崩溃了。
是否有人处于类似情况?
这是关闭崩溃: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
}
更新5: 解决方案:How to call IBAction in subview?
答案 0 :(得分:3)
您没有提供有效的网址,网址的格式始终为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]];
答案 1 :(得分:1)
如果您执行类似
的操作,它会崩溃吗?NSString *url = @"http://www.google.com";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
我相信你需要“ http:// ”。