У меня возникли проблемы с распаковкой CNLabeledValue
, чтобы получить номер телефона. Вот мой код (Swift), и то, что я сейчас получаю, это <CNPhoneNumber: 0x12cefa000: countryCode=us, digits=4157119521>
. Мне просто нужно получить доступ к значению digits
, поэтому я пытаюсь распечатать его в пределах for number in result.phoneNumbers {}
.Доступ к номерам телефонов из раздела «Контакты» в iOS 9
lazy var contacts: [CNContact] = {
let contactStore = CNContactStore()
let keysToFetch = [
CNContactFormatter.descriptorForRequiredKeysForStyle(.FullName),
CNContactPhoneNumbersKey]
// Get all the containers
var allContainers: [CNContainer] = []
do {
allContainers = try contactStore.containersMatchingPredicate(nil)
} catch {
print("Error fetching containers")
}
var results: [CNContact] = []
// Iterate all containers and append their contacts to our results array
for container in allContainers {
let fetchPredicate = CNContact.predicateForContactsInContainerWithIdentifier(container.identifier)
do {
let containerResults = try contactStore.unifiedContactsMatchingPredicate(fetchPredicate, keysToFetch: keysToFetch)
for result in containerResults {
for number in result.phoneNumbers {
// WHAT SHOULD I PRINT HERE?????
print(number.value)
}
}
results.appendContentsOf(containerResults)
} catch {
print("Error fetching results for container")
}
}
return results
}()