gpt4 book ai didi

ios - 如何使用 CNContacts 快速获取手机号码?

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:30 26 4
gpt4 key购买 nike

我有一些代码可以检索用户联系人中的所有电话号码,但我只想过滤掉手机号码。目前,我只是将第一位数字为“+”或第二位数字为“7”的数字添加到数组中,如下所示:

    func findContacts () -> [CNContact]{
let keysToFetch = [CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName),CNContactPhoneNumbersKey]
let fetchRequest: CNContactFetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)
var contacts = [CNContact]()
CNContact.localizedStringForKey(CNLabelPhoneNumberiPhone)
fetchRequest.mutableObjects = false
fetchRequest.unifyResults = true
fetchRequest.sortOrder = .UserDefault

let contactStoreID = CNContactStore().defaultContainerIdentifier()

do {

try CNContactStore( ).enumerateContactsWithFetchRequest(fetchRequest) { (let contact, let stop) -> Void in
if contact.phoneNumbers.count > 0 {
contacts.append(contact)
}
if (contact.isKeyAvailable(CNContactPhoneNumbersKey)) {
for phoneNumber:CNLabeledValue in contact.phoneNumbers {
let number = phoneNumber.value as! CNPhoneNumber
print(number.stringValue)
let index = number.stringValue.startIndex.advancedBy(1)
let indexPlus = number.stringValue.startIndex.advancedBy(0)
if number.stringValue[index] == Character(String(7)) || number.stringValue[indexPlus] == Character("+"){
self.allNumbers.append("\(number.stringValue)")
}
}
}
}

由于联系人存储在带有“移动”标签的 iPhone 上,我想知道是否只能将这些数字添加到数组中。谢谢:)

最佳答案

像这样检查号码的标签是否是移动的:

var mobiles = [CNPhoneNumber]()

for num in contact.phoneNumbers {
let numVal = num.value as! CNPhoneNumber
if num.label == CNLabelPhoneNumberMobile {
mobiles.append(numVal)
}
}

然后您就有了那个人的一系列手机号码。

关于ios - 如何使用 CNContacts 快速获取手机号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com