IOS/Swift 操作通讯录步骤
通讯录的访问步骤一般如下:
- 调用ABAddressBookCreateWithOptions()方法创建通讯录对象ABAddressBookRef。
- 调用ABAddressBookRequestAccessWithCompletion()方法获得用户授权访问通讯录。
- 调用ABAddressBookCopyArrayOfAllPeople()、ABAddressBookCopyPeopleWithName()方法查询联系人信息。
- 读取联系人后如果要显示联系人信息则可以调用ABRecord相关方法读取相应的数据;如果要进行修改联系人信息,则可以使用对应的方法修改ABRecord信息,然后调用ABAddressBookSave()方法提交修改;如果要删除联系人,则可以调用ABAddressBookRemoveRecord()方法删除,然后调用ABAddressBookSave()提交修改操作。
- 也就是说如果要修改或者删除都需要首先查询对应的联系人,然后修改或删除后提交更改。如果用户要增加一个联系人则不用进行查询,直接调用ABPersonCreate()方法创建一个ABRecord然后设置具体的属性,调用ABAddressBookAddRecord方法添加即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | class ViewController: UIViewController { //1.创建通讯录对象ABAddressBookRef。 let addressBook: ABAddressBook = ABAddressBookCreateWithOptions( nil , nil ).takeRetainedValue() override func viewDidLoad() { super .viewDidLoad() //2.获得用户授权访问通讯录 ABAddressBookRequestAccessWithCompletion(addressBook){isAccess, error in if isAccess { //操作 self .getAddressBookInfos() } } } func getAddressBookInfos() { if ABAddressBookGetAuthorizationStatus() == .Authorized { //3.查询联系信息 var arr = ABAddressBookCopyArrayOfAllPeople( self .addressBook).takeRetainedValue() for record in arr as NSArray { //do something... } } } } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· 对象命名为何需要避免'-er'和'-or'后缀
· JDK 24 发布,新特性解读!
· Java24你发任你发,我用Java8
· .NET Core奇技淫巧之WinForm使用Python.NET并打包
· C# 中比较实用的关键字,基础高频面试题!