如何以编程方式从 iOS 地址簿中批量删除自定义标签?
How to batch remove custom labels from iOS AddressBook programmatically?
我想以编程方式从地址簿中批量删除自定义标签。但是没有publicAPI。谁有更好的解决方法,谢谢!
假设您谈论的是与电子邮件、电话和地址相关联的标签,您可能会
- 使用 AddressBook.framework;
- 获取联系人列表(例如
ABAddressBookCopyArrayOfAllPeople
);
- 遍历联系人;
- 使用
ABRecordCopyValue
获取与您感兴趣的多值属性关联的 ABMultiValueRef
(例如,可能 kABPersonEmailProperty
、kABPersonAddressProperty
and/or kABPersonPhoneProperty
).
- 使用
ABMultiValueGetCount
获取标签数;
- 使用
ABMultiValueCopyLabelAtIndex
获取实际标签;
- 将这些标签与
kABHomeLabel
、kABWorkLabel
和 kABOtherLabel
进行比较;和
- 如果标签不匹配,则对该记录的特定多值标签做任何您想做的事。
有关详细信息,请参阅 Address Book Programming Guide for iOS: Direct Interaction: Programmatically Accessing the Database as well as the Address Book Framework Reference for iOS。
我想以编程方式从地址簿中批量删除自定义标签。但是没有publicAPI。谁有更好的解决方法,谢谢!
假设您谈论的是与电子邮件、电话和地址相关联的标签,您可能会
- 使用 AddressBook.framework;
- 获取联系人列表(例如
ABAddressBookCopyArrayOfAllPeople
); - 遍历联系人;
- 使用
ABRecordCopyValue
获取与您感兴趣的多值属性关联的ABMultiValueRef
(例如,可能kABPersonEmailProperty
、kABPersonAddressProperty
and/orkABPersonPhoneProperty
). - 使用
ABMultiValueGetCount
获取标签数; - 使用
ABMultiValueCopyLabelAtIndex
获取实际标签; - 将这些标签与
kABHomeLabel
、kABWorkLabel
和kABOtherLabel
进行比较;和 - 如果标签不匹配,则对该记录的特定多值标签做任何您想做的事。
有关详细信息,请参阅 Address Book Programming Guide for iOS: Direct Interaction: Programmatically Accessing the Database as well as the Address Book Framework Reference for iOS。