我正在使用一个表格视图,其中每个销售都有一个特定的电话号码,旁边有一个呼叫按钮,拨打该号码...例如,如果我在小区中有一个电话号码为(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并且未拨打电话
此致
阿伦
答案 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
更具可读性。我还建议使用更多变量 - 优化器将确保它们没有影响,它将使调试更容易。