如何通过按iphone应用程序中的通话按钮拨号?

时间:2009-04-20 06:52:33

标签: iphone

我正在使用一个表格视图,其中每个销售都有一个特定的电话号码,旁边有一个呼叫按钮,拨打该号码...例如,如果我在小区中有一个电话号码为(425)821- 1300我使用字符串变量phonenumberstring将其更改为标准格式425-821-1300,如下所示:

    phonenumberstring=[phonenumberstring substringFromIndex:1];
    phonenumberstring=[phonenumberstring stringByReplacingOccurrencesOfString:@")" withString:@"-"];

    m_strPhoneNumber = [NSString stringWithFormat:@"tel:%@", self.phonenumberstring];
//[[UIApplication sharedApplication] openURL:[NSURL URLWithString:m_strPhoneNumber]];
    NSURL *url = [[NSURL alloc] initWithString:m_strPhoneNumber];//1
    [[UIApplication sharedApplication] openURL:url];//2
当我在评论的第1行和第1行调试时,事情正在使用这个。 2个网址显示为nill并且未拨打电话

此致

阿伦

1 个答案:

答案 0 :(得分:2)

此时m_strPhoneNumber和phonenumberstring的值是多少。是否正确设置了phonenumberstring?

要删除第一个括号,为什么不使用stringByReplacingOccurrencesOfString:@"(" withString:@“”等,它看起来不那么脆弱。事实上,我建议删除所有非数字字符 - 甚至是连字符。

这可能是矫枉过正,但尝试类似:

m_strPhoneNumber = [NSMutableString stringWithString:@"tel:%@"];
NSArray *numberTokens = [phonenumberstring componentsSeparatedByCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]];
            for (NSString *token in numberTokens) {
                m_strPhoneNumber = [m_strPhoneNumber stringByAppendingString:token];
            }

除了小样式外,我建议phoneNumberString更具可读性。我还建议使用更多变量 - 优化器将确保它们没有影响,它将使调试更容易。