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

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

Это прекрасно работает. Однако, когда номер телефона содержит такой код страны +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);

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


person Upvote    schedule 17.10.2011    source источник


Ответы (1)


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

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

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

person Totumus Maximus    schedule 17.10.2011