将变量附加到NSURL

时间:2011-12-28 19:15:58

标签: objective-c cocoa-touch iphone-sdk-3.0

我正在尝试使用来自JSON的电话号码拨打电话,但是在这一行上抛出一个未被捕获的例外:

 lblPhone.text = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://" URLByAppendingPathComponent:phone]];

我做错了什么?

3 个答案:

答案 0 :(得分:1)

您正在尝试从不返回字符串的操作中创建标签的字符串。无法根据尝试拨打电话的操作结果设置字符串的文本。

要创建标签,只需使用电话号码。

lblPhone.text = phone

要进行通话,您需要挂钩使用标签的操作:

NSString *phoneNrUrl = [@"tel://" stringByAppendingString:lblPhone.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNrUrl]];

您可以将上述两行作为一行,但我更喜欢可读性并让编译器进行优化。

答案 1 :(得分:0)

您正在调用不存在的函数+[NSURL URLWithString:URLByAppendingPathComponent:]。您希望首先从字符串创建URL,然后添加路径组件。

更像这样:

[[UIApplication sharedApplication] openURL:[[NSURL URLWithString:@"tel://"] URLByAppendingPathComponent:phone]];

答案 2 :(得分:0)

可能openURL:返回BOOLlblPhone.text似乎更多为NSString

如果这不是原因,那么将异常消息添加到您的问题呢?