中易网

iOS8可以用cncontacts框架吗

答案:2  悬赏:30  
解决时间 2021-04-27 01:51
CNContacts框架只适用于iOS9吗?向下兼容吗
最佳答案
第一步,导入Contacts框架,import Contacts ,这个是不带UI的框架,可以直接获取联系人

[objc] view plain copy
// 检查状态
let status: CNAuthorizationStatus = CNContactStore.authorizationStatusForEntityType(CNEntityType.Contacts)
switch status {
case .NotDetermined:
print("是否允许访问联系人,当应用第一次安装在设备上时将处于此状态")
case .Restricted:
print("不能够访问联系人数据,并且用户也不能在设置中改变这个状态")
case .Denied:
print("不允许应用访问联系人数据")
case .Authorized:
print("能够自由访问联系人")
}
第二步,如果没有获取授权就去获取
[objc] view plain copy
private func getAuth() {
CNContactStore().requestAccessForEntityType(CNEntityType.Contacts) { (status: Bool, error) in
if error != nil {
print("error = \(error)")
}
// 根据status的状态来判断是否授权成功
print("status = \(status)")
}
}

第三步、获取通讯录信息
// 获取通讯录信息
private func getContactMessage() {
let formatter = CNContactFormatter.descriptorForRequiredKeysForStyle(CNContactFormatterStyle.FullName)
// 这里的 Key 可以根据需要设置
let request = CNContactFetchRequest.init(keysToFetch: [formatter, CNContactIdentifierKey, CNContactPhoneNumbersKey, CNContactEmailAddressesKey, CNContactEmailAddressesKey, CNContactImageDataAvailableKey])

do {
try CNContactStore().enumerateContactsWithFetchRequest(request) {[weak self] (contact: CNContact, status:UnsafeMutablePointer) in
// 保存到数组
self!.dataSources.append(contact)
}
} catch let error {
print("获取信息 error = \(error)")
}
}

第四步、打印获取的信息
private func contactMessage() {
for contact in dataSources {
let number = contact.phoneNumbers
// 演示需要,只打印电话号码,这里是一个数组,可能不止一个号码
for obj in number {
let model = obj.value as! CNPhoneNumber
print("number = \(model.stringValue)")
}
}
}
全部回答
应该不能吧。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
《非常6+1》某一期中的冠军于翔的详细资料?
cbm是什么
眼睛上长休子怎么办?
每天跳绳,,能长高不?
包头哪里有屠宰场?急!!!
谁能给我BIGBANG & WONDERGIRLS - Nobody
大红门家具城这个地址在什么地方,我要处理点
拍拍确认收货
三国蜀汉名将(打不破的神话)
如何才能让心爱的人不受伤?
免费大学普通化学课件在哪找
职通就业服务体验店惠州惠风东二路店我想知道
外省人可以在重庆一外读高中吗?可以的话入学
联通的卡可以大批量 用公司名义实名认证吗?
数控销售怎么样
推荐资讯
分手后,再遇到他(她)时,该怎样面对?
有好多电视剧怎么看不到
交通银行8000的额度刷了3000每月还多少
为什么纹眉后眉毛又黑又粗
慧荣木业我想知道这个在什么地方
福康推拿按摩中心我想知道这个在什么地方
正方形纸叠心形有几种叠发,该怎样叠?快快快
IPOD touch 2 支持什么格式的电影
平行四边形ABCD中,过对角线BD上一点P做EF//B
一台电脑下2个超过16g的游戏以及6个超过4g的
电脑达人速进...估价
坚得利冷气五金交电部地址在哪,我要去那里办
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?