Iphone 在safari中打开url时应用程序崩溃
我试图用以下代码在safari中打开url:Iphone 在safari中打开url时应用程序崩溃,iphone,objective-c,xcode,safari,nsurl,Iphone,Objective C,Xcode,Safari,Nsurl,我试图用以下代码在safari中打开url: - (IBAction)webButton:(id)sender { NSString *url = @"www.google.com"; url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; [[UIApplication sharedApplication]openURL:[NSURL URLWithString:url
- (IBAction)webButton:(id)sender {
NSString *url = @"www.google.com";
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:url]];
}
但每次应用程序崩溃时
有人有过类似的情况吗
下面是ss off crash:
更新:
这是用于打开邮件,但在sharedApplication上相同。它崩溃了
更新2:
控制台日志:
argv字符**0xbffff520
*argv char*0xbffff658
**argv字符'/'
argc int 1
更新3:
它调用iAction,但崩溃了。当我在根视图中尝试这段代码时,它是有效的。我添加并连接了IB按钮,一切正常
在子视图中调用UIApplication sharedApplication是否有问题?我应该用不同的方式打电话吗
更新4:
我发现问题甚至是在子视图中调用空的iAction时,所以问题显然不在UIApplication中,而是在子视图中调用iAction
- (IBAction)webButton:(id)sender {
// empty
}
更新5:
解决方案:如果您执行以下操作,它会崩溃吗
NSString *url = @"http://www.google.com";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
我相信你需要http://在那里。如果你这样做,它会崩溃吗
NSString *url = @"http://www.google.com";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
我相信您需要http://在那里。您没有提供有效的URL,URL的格式始终是scheme:
您没有提供有效的URL,URL的格式始终为scheme:
这一点也不奇怪,如果你逃跑了http://www.google.com 你会得到:http%3A%2F%2Fwww.google.com,这不是一个有效的URL。请参见下面我的答案。解决方案是@sveiungkvalbakken的方法。但它对我不起作用,我在第一篇文章中进行了更新。请看一看,你看了我的帖子了吗?您正在转义用于分隔方案、主机和参数的特殊字符,看看如何只转义URL参数的内容,而不是URL本身。我应该转义URL的哪一部分?这一点都不奇怪,如果你逃走了http://www.google.com 你会得到:http%3A%2F%2Fwww.google.com,这不是一个有效的URL。请参见下面我的答案。解决方案是@sveiungkvalbakken的方法。但它对我不起作用,我在第一篇文章中进行了更新。请看一看,你看了我的帖子了吗?您正在转义用于分隔方案、主机和参数的特殊字符,请查看如何仅转义URL参数的内容,而不是URL本身。我应该转义URL的哪一部分?我想您还有其他问题,我一直在使用同一个代码,它没有任何问题。当你编写代码时,它再次崩溃。我在子视图中调用上面的代码,也许这就是问题所在。因为当我尝试在根视图中调用此代码时,它是有效的。@crios您需要更清楚地说明您正在尝试完成什么,以及到底出了什么问题。您的更新不断更改您的问题。是的,我的更新更改了问题,因为我认为该问题存在于UIApplication中,但事实并非如此。在这一点上,我提出了一个新的问题,因为它和这个不一样。我想你还有别的地方出了问题,我一直都在使用同一个代码,但没有什么问题。它再次崩溃,你的代码无法运行。我在子视图中调用上面的代码,也许这就是问题所在。因为当我尝试在根视图中调用此代码时,它是有效的。@crios您需要更清楚地说明您正在尝试完成什么,以及到底出了什么问题。您的更新不断更改您的问题。是的,我的更新更改了问题,因为我认为该问题存在于UIApplication中,但事实并非如此。在这一点上,我提出了一个新的问题,因为它和这个不一样。在iphone上试用。崩溃到。您确定IBAction已正确连接吗?你能在webButton方法中放置一个断点以确保你进入该方法吗?是的,我进入该方法。请在更新后的第一篇帖子上打个比方。你能发布崩溃的控制台吗?我在一个帖子堆中发现了这一点:你可能需要保留URL对象。这曾经是我的问题。链接:在iphone上试用。崩溃到。您确定IBAction已正确连接吗?你能在webButton方法中放置一个断点以确保你进入该方法吗?是的,我进入该方法。请在更新后的第一篇帖子上打个比方。你能发布崩溃的控制台吗?我在一个帖子堆中发现了这一点:你可能需要保留URL对象。这曾经是我的问题。链接:
// 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]];