使用AddressBook来获取通讯录消息

来源:互联网 发布:单片机语言是什么语言 编辑:程序博客网 时间:2024/05/24 03:21

本文为swift代码,且AddressBook于ios9被废除了,ios9或以上请了解contact


首先引入模块

import AddressBook
定义

var ab:ABAddressBookRef?

获取

<span style="white-space:pre"></span>let sysAddressBookStatus = ABAddressBookGetAuthorizationStatus()        if (sysAddressBookStatus == ABAuthorizationStatus.NotDetermined) {            print("requesting access...")            var errorRef:Unmanaged<CFError>? = nil            //addressBook = extractABAddressBookRef(ABAddressBookCreateWithOptions(nil, &errorRef))            ABAddressBookRequestAccessWithCompletion(addressBook, { success, error in                if success {                    //获取并遍历所有联系人记录                    self.readRecords();                }                else {                    print("error")                }            })        }        else if (sysAddressBookStatus == ABAuthorizationStatus.Denied ||            sysAddressBookStatus == ABAuthorizationStatus.Restricted) {                print("access denied")        }        else if (sysAddressBookStatus == ABAuthorizationStatus.Authorized) {            print("access granted")            //获取并遍历所有联系人记录            self.readRecords();        }*/

遍历显示通讯录

func readRecords(){        let sysContacts:NSArray = ABAddressBookCopyArrayOfAllPeople(addressBook)            .takeRetainedValue() as NSArray                for contact in sysContacts {            //获取姓            let lastName = ABRecordCopyValue(contact, kABPersonLastNameProperty)?                .takeRetainedValue() as! String? ?? ""            print("姓:\(lastName)")                        //获取名            let firstName = ABRecordCopyValue(contact, kABPersonFirstNameProperty)?                .takeRetainedValue() as! String? ?? ""            print("名:\(firstName)")        }    }


0 0