【发布时间】:2012-05-08 20:47:17
【问题描述】:
我正在尝试使用以下代码在 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 字符 ** 0xbffff520 *argv 字符 * 0xbffff658 **argv 字符 '/' argc int 1
更新 3: 它调用 IBAction 但崩溃了。当我在根视图中尝试此代码时,它可以工作。我在 IB 按钮中添加并连接,一切正常。
在子视图中调用 UIApplication sharedApplication 有问题吗?我应该用其他方式打电话吗?
更新 4:
我发现问题是即使我在子视图中调用空 IBAction,所以问题显然不在 UIApplication 中,而是在子视图中调用 IBAction。
- (IBAction)webButton:(id)sender {
// empty
}
更新 5: 解决方案:How to call IBAction in subview?
【问题讨论】:
-
在 iphone 上试过。崩溃了。
-
您确定您的 IBAction 连接正确吗?您可以在 webButton 方法中设置一个断点以确保您进入该方法吗?
-
是的,我正在学习方法。请看一下更新后的第一篇文章。
-
您能否发布崩溃的控制台输出?
-
这是我在一篇文章(堆栈)中发现的:“您可能需要保留 URL 对象。这曾经是我的问题”。链接:stackoverflow.com/questions/5775077/…
标签: iphone objective-c xcode safari nsurl