我正在尝试对我的地址簿中的所有数字进行统一更改,我想将我的国家/地区代码(+46)添加到以0开头的所有数字,并认为我会为此制作应用。问题是如何以最好的方式做到这一点,看起来很难 - 很难。
通常的方式似乎是通过一个人选择器:http://developer.apple.com/library/ios/#documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/UI_Controllers.html#//apple_ref/doc/uid/TP40007744-CH5-SW4 - 但这意味着用户必须选择它想要更改的联系人,这必须是一种过于复杂的方式。
有没有办法遍历地址簿中的所有数字,更改它们,然后将它们放回去?
提前感谢Tobias Tovedal。
答案 0 :(得分:6)
是的,您可以遍历所有记录,并可以编辑地址簿中的记录。以下是从地址簿获取所有记录的示例:
NSArray *array= (NSArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
以下是根据人的记录ID从地址簿编辑特定记录的代码:
ABAddressBookRef ab = ABAddressBookCreate();
ABRecordID id = ABRecordGetRecordID(person);
ABRecordRef newPerson = ABAddressBookGetPersonWithRecordID(ab, id);
if(newPerson != NULL){
if(![firstName.text isEqual:firstname]){
ABRecordRemoveValue(newPerson, kABPersonFirstNameProperty,nil);
ABRecordSetValue(newPerson, kABPersonFirstNameProperty, firstName.text,nil);
}
}
ABAddressBookSave(ab,nil);
您可以获取数组中的记录,然后更改电话号码的值或逐个遍历记录。你需要注意一个人的电话号码,因为一个人可以有多个电话号码所以,你需要使用ABMultiValueRef获取电话号码,这将给出一个人的所有电话号码。