为什么使用NSString作为URL导致SIGABRT?

时间:2012-01-30 13:46:51

标签: objective-c

以下方法导致代码中断,为什么会这样? NSURL的独特之处在于它们不能从NSString中隐式转换?

- (void)followLink
{
    [[UIApplication sharedApplication]openURL:@"http://www.google.com"];
}

2 个答案:

答案 0 :(得分:4)

因为您将NSString传递给期望NSURL作为参数的方法。要解决您的问题,请从字符串中创建url对象:

- (void)followLink
{
    [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"http://www.google.com"]];
}

答案 1 :(得分:0)

openURL:等待NSURL个对象,你给它一个NSString

您尝试编写的代码可能是:

- (void)followLink
{
   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com"]];
}