我必須從他的電話簿訪問用戶聯繫人並在skstableview中顯示它。 爲了得到接觸,並將其顯示在tableview中我使用下面的代碼,但沒有它不要求訪問聯繫人權限也越來越聯繫人和控制檯上打印着這樣一句話:不要求獲取用戶地址簿中聯繫人的權限
「拒絕訪問」的UserInfo = {NSLocalizedDescription =訪問拒絕,NSLocalizedFailureReason =此應用程序未被授予訪問聯繫人的權限。}
我已經在plist文件中完成了訪問聯繫人的條目,但沒有任何內容適用於我。
這是我在Xcode 8.3.3 swift中使用的代碼片段。
func getContacts() {
let store = CNContactStore()
if CNContactStore.authorizationStatus(for: .contacts) == .notDetermined {
store.requestAccess(for: .contacts){succeeded, err in
guard err == nil && succeeded else{
return
}
self.contactList()
}
} else if CNContactStore.authorizationStatus(for: .contacts) == .authorized {
self.contactList()
NSLog(" move to contact list ")
}
}
func contactList() {
let req = CNContactFetchRequest(keysToFetch: [
CNContactFamilyNameKey as CNKeyDescriptor,
CNContactGivenNameKey as CNKeyDescriptor,
CNContactPhoneNumbersKey as CNKeyDescriptor
])
arr_contacts.removeAllObjects()
try! CNContactStore().enumerateContacts(with: req) {
contact, stop in
print("contacts \(contact)") // in real life, probably populate an array
self.arr_contacts.add(contact)
}
tbl_List.reloadData()
print("added all contacts")
}
任何人都可以建議我做錯了什麼。
感謝
'authorizationStatus'的值是什麼? – Shebuka
什麼是實際授權狀態? 'store.requestAccess'方法被調用嗎? –
您是否已將必要的密鑰添加到Info.plist文件? –