मेरे पास उपयोगकर्ताओं के संपर्क में सभी फोन नंबर पुनर्प्राप्त करने के लिए कुछ कोड है, लेकिन केवल मोबाइल नंबरों को फ़िल्टर करना चाहते हैं। वर्तमान में, मैं सिर्फ यह केवल एक सरणी के लिए "+" या "7" का दूसरा अंक के पहले अंक के साथ जोड़कर मिलने वाले जिन्हें आप नीचे देख कर रहा हूँ,:CNContacts का उपयोग करके केवल मोबाइल नंबरों को तेजी से कैसे लाया जाए?
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 पर जमा हो जाती "मोबाइल" लेबल, मैं सोच रहा था कि केवल इन नंबरों को सरणी में जोड़ा जा सकता है। धन्यवाद :)
हार्डकोड न करें '" मोबाइल "'। 'CNLabelPhoneNumberMobile' या' CNLabelPhoneNumberiPhone' का उपयोग करें। लेकिन ध्यान रखें कि यह सभी मोबाइल नंबर नहीं मिलेगा। फ़ोन नंबर जोड़ने पर लोग कस्टम लेबल का उपयोग कर सकते हैं। कोई वास्तव में गलती या किसी भी अन्य संभावनाओं से "घर" लेबल का उपयोग कर सकता है। या कोई उपयोगकर्ता भूमि रेखा पर "मोबाइल" लेबल का उपयोग कर सकता है। अंत में, यह सुनिश्चित करने का कोई तरीका नहीं है कि कोई भी संख्या वास्तव में एक मोबाइल नंबर है। – rmaddy