Я использую этот код для извлечения контактов с устройства. Как организовать массив для создания разделов контактов в соответствии с первой буквой имени контакта в swift 3?Как организовать массив для создания разделов контактов в соответствии с первым именем контактного лица в swift 3?
lazy var contacts: [CNContact] = {
let contactStore = CNContactStore()
let keysToFetch = [
CNContactFormatter.descriptorForRequiredKeys(for: .fullName),
CNContactEmailAddressesKey,
CNContactPhoneNumbersKey,
CNContactImageDataAvailableKey,
CNContactThumbnailImageDataKey] as [Any]
// Get all the containers
var allContainers: [CNContainer] = []
do {
allContainers = try contactStore.containers(matching: 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.predicateForContactsInContainer(withIdentifier: container.identifier)
do {
let containerResults = try contactStore.unifiedContacts(matching: fetchPredicate, keysToFetch: keysToFetch as! [CNKeyDescriptor])
results.append(contentsOf: containerResults)
} catch {
print("Error fetching results for container")
}
}
results.sort{$0.givenName < $1.givenName} // sorting array by name
return results
}()
Да это уже массив CNContact, но как это устроить. –
Я имел в виду массив массивов CNContact. [[CNContact]]. –