Приложение падает, когда выбран контактный номер, который содержит "+"

У меня есть приложение для iPhone. Пользователь может выбрать контакт. При выборе открывается другой вид, где пользователь должен выбрать номер телефона.

Это прекрасно работает. Однако, когда номер телефона содержит код страны, как это +49 ... приложение вылетает.

-(BOOL)personViewController:(ABPersonViewController *)personViewController shouldPerformDefaultActionForPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier{
    ABMutableMultiValueRef multi = ABRecordCopyValue(person, property);
    CFStringRef phone = ABMultiValueCopyValueAtIndex(multi, identifier);

    ///....some code

    [self dismissModalViewControllerAnimated:YES];

    [personViewController.navigationController dismissModalViewControllerAnimated:YES];
    return NO;
}

Останавливается на этой линии

CFStringRef phone = ABMultiValueCopyValueAtIndex(multi, identifier);

но в журнале нет ошибок. Есть идеи, как это исправить?

1 ответ

Решение

Я не знаю, куда вы вставляете это "+", но вы должны попытаться заменить его чем-то, с чем он может работать.

[yourString stringByReplacingOccurrencesOfString:@"+" withString:@"00"];

Если это не поможет, попробуйте перейти по этой ссылке: Адресная книга Префикс номера телефона (+45), вызывающий сбой!

Другие вопросы по тегам