मैं सिर्फ फोन नंबर से नाम और परिवार का नाम संपर्क प्राप्त करना चाहता हूं। मैंने कोशिश की लेकिन यह बहुत धीमी है और सीपीयू 120% से अधिक है।आईओएस संपर्क फ़ोन नंबर से संपर्क कैसे प्राप्त करें
let contactStore = CNContactStore()
let keys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey]
var contacts = [CNContact]()
do {
try contactStore.enumerateContactsWithFetchRequest(CNContactFetchRequest.init(keysToFetch: keys), usingBlock: { (contact, cursor) in
if (!contact.phoneNumbers.isEmpty) {
for phoneNumber in contact.phoneNumbers {
if let phoneNumberStruct = phoneNumber.value as? CNPhoneNumber {
do {
let libPhone = try util.parseWithPhoneCarrierRegion(phoneNumberStruct.stringValue)
let phoneToCompare = try util.getNationalSignificantNumber(libPhone)
if formattedPhone == phoneToCompare {
contacts.append(contact)
}
}catch {
print(error)
}
}
}
}
})
if contacts.count > 0 {
contactName = (contacts.first?.givenName)! + " " + (contacts.first?.familyName)!
print(contactName)
completionHandler(contactName)
}
}catch {
print(error)
}
इसके अलावा जब मैं खोजने के संपर्कों के लिए फ़ोन नंबर की किट अपनी बढ़ती सीपीयू और देर से प्रतिक्रिया देने का प्रयोग करें।
var result: [CNContact] = []
let nationalNumber = PhoneNumberKit().parseMultiple([phoneNumber])
let number = nationalNumber.first?.toNational()
print(number)
for contact in self.addressContacts {
if (!contact.phoneNumbers.isEmpty) {
let phoneNumberToCompareAgainst = number!.componentsSeparatedByCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet).joinWithSeparator("")
for phoneNumber in contact.phoneNumbers {
if let phoneNumberStruct = phoneNumber.value as? CNPhoneNumber {
let phoneNumberString = phoneNumberStruct.stringValue
let nationalContactNumber = PhoneNumberKit().parseMultiple([phoneNumberString])
let nationalContactNumberString = nationalContactNumber.first?.toNational()
if nationalContactNumberString == number {
result.append(contact)
}
}
}
}
}
return result
कोई सुझाव या सहायता? –
ऐसा नहीं लगता कि यह संभव है – user3237732
मैं सिर्फ फोन नंबर से नाम और उपनाम प्राप्त करने की कोशिश कर रहा हूं और इसे प्राप्त नहीं कर सकता? यह दिलचस्प है तो व्हाट्सएप यह कैसे कर सकता है? –