Ios 通过ABAddressBookCreate访问通讯簿

Ios 通过ABAddressBookCreate访问通讯簿,ios,swift,Ios,Swift,我正在尝试访问通讯簿: var addressBook = ABAddressBookCreate() as! ABAddressBook! if addressBook == nil { print("addressBook not available") return } var allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook) var noOfPeople = ABAddressBookGetPersonC

我正在尝试访问通讯簿:

var addressBook = ABAddressBookCreate() as! ABAddressBook!
if addressBook == nil {
    print("addressBook not available")
    return
}
var allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook)
var noOfPeople = ABAddressBookGetPersonCount(addressBook)
但我的代码总是死机

var allPeople=abAddressBookCopyArrayFallPeople(地址簿)

控制台中没有任何错误

正确的方法是什么


谢谢你

1:确保你在plist中设置了
隐私-联系人使用说明

2:当你尝试访问通讯录时,你需要有权限,下面是示例代码

let addressStatus: ABAuthorizationStatus = ABAddressBookGetAuthorizationStatus()
        if addressStatus == ABAuthorizationStatus.notDetermined {
            let addressBook: ABAddressBook? = ABAddressBookCreate().takeRetainedValue()
            if let addressBookRef = addressBook {
                ABAddressBookRequestAccessWithCompletion(addressBookRef, { (granted, error) in
                    if granted {
                        //read address book
                    } else {
                        //do something without grant, toast or alert
                    }
                })
            } else {
                //fail 
            }
        } else if addressStatus == ABAuthorizationStatus.authorized {
            //already have the authority
            let addressBook: ABAddressBook? = ABAddressBookCreate().takeRetainedValue()
            if let addressBookRef = addressBook {
                //read address book
            } else {
                //fail
            }
        } else {
            //no authority
        }