2015-08-29 3 views
2

Я делаю социальное приложение, и мне нужно реализовать ABAddressBook с именем и номером телефона. Я хотел бы формат телефон например: +33 6 01 23 45 67 будет 06 (французский номер телефона). Итак, я хочу удалить пробелы и преобразовать +33 в 0Как изменить формат номера телефона в ABAddressBook?

Некоторые номера телефонов не с пробелами, а некоторые другие. Я не знаю почему. и число, начинающееся с +33 6, не сохраняется.

ABMultiValueRef phones = ABRecordCopyValue(contactPerson, kABPersonPhoneProperty); 
for (NSUInteger j = 0; j < ABMultiValueGetCount(phones); j++) { 

    NSMutableString *phone = [CFBridgingRelease(ABMultiValueCopyValueAtIndex(phones, j)) mutableCopy]; 

    [phone replaceOccurrencesOfString:@" " withString:@"" options:0 range:NSMakeRange(0, phone.length)]; 
    [phone replaceOccurrencesOfString:@"(" withString:@"" options:0 range:NSMakeRange(0, phone.length)]; 
    [phone replaceOccurrencesOfString:@")" withString:@"" options:0 range:NSMakeRange(0, phone.length)]; 
    [phone replaceOccurrencesOfString:@"-" withString:@"" options:0 range:NSMakeRange(0, phone.length)]; 
    [phone replaceOccurrencesOfString:@"+33" withString:@"0" options:0 range:NSMakeRange(0, phone.length)]; 
    [phone stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

    if (((j == 0) && [phone hasPrefix:@"06"]) || ((j == 0) && [phone hasPrefix:@"07"]))  person.mainNumber = phone; 
    else if ((j==1) && [phone hasPrefix:@"06"]) person.mainNumber = phone; 
    else if ((j==2) && [phone hasPrefix:@"06"]) person.mainNumber = phone; 
    else if ((j==3) && [phone hasPrefix:@"06"]) person.mainNumber = phone; 
} 
CFRelease(phones); 

ответ

2

Взгляните на решение Google https://github.com/googlei18n/libphonenumber.

Как ни странно, у какао нет общедоступного телефонного форматирования, насколько я знаю

+0

Спасибо, мужчина, я проверил его! – Viny76