如何修改ABAddressBook中phone个数字的格式?
How to change the format of phone number in ABAddressBook?
我正在制作一个社交应用程序,我必须实现带有名称和 phone 号码的 ABAddressBook。
我想 格式化 phone 数字 例如:+33 6 01 23 45 67
变成 0601234567
(法语 phone 数字)。所以,我想删除空格,并将 +33
转换为 0
一些 phone 数字没有空格,但其他一些是。我不知道为什么。和以 +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);
看看 Google 的解决方案 https://github.com/googlei18n/libphonenumber。
奇怪的是,据我所知,Cocoa 没有 public phone 格式化程序
我正在制作一个社交应用程序,我必须实现带有名称和 phone 号码的 ABAddressBook。
我想 格式化 phone 数字 例如:+33 6 01 23 45 67
变成 0601234567
(法语 phone 数字)。所以,我想删除空格,并将 +33
转换为 0
一些 phone 数字没有空格,但其他一些是。我不知道为什么。和以 +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);
看看 Google 的解决方案 https://github.com/googlei18n/libphonenumber。
奇怪的是,据我所知,Cocoa 没有 public phone 格式化程序