Как набрать номер, нажав кнопку вызова в приложении iphone? - PullRequest
1 голос
/ 20 апреля 2009

Я использую табличное представление, в котором каждая продажа имеет определенный номер телефона, а также кнопку вызова, при нажатии которой набирается номер ... Например, если у меня есть номер телефона в ячейке, как (425) 821- 1300 я изменил его в стандартный формат 425-821-1300 с помощью кода, как показано ниже, используя строковую переменную phonenumberstring

    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 и 2 URL отображается ноль, а вызов не набирается

Привет

Arun

1 Ответ

2 голосов
/ 20 апреля 2009

Каково значение m_strPhoneNumber и 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 более читабелен. Я бы также рекомендовал использовать больше переменных - оптимизатор позаботится о том, чтобы они не оказали влияния, и это значительно упростит отладку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...