Я извлекаю данные из модели i.e Contacts
. Затем я сортирую эту модель согласно свойству name
. Но результат не пришел в порядке. Я использую следующий код для сортировки данных:Сортировка в Swift3
func filterArrayAlphabatically(contacts : [Contact])
{
let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".characters.map({ String($0)})
let all_Contacts = contacts.sorted { $0.name < $1.name } //Sort model data as per name
var result = [String:[Contact]]()
for letter in alphabet
{
result[letter] = []
for cntct in all_Contacts
{
let ctc : Contact! = cntct
let name : String! = ctc.name.capitalized
if name.hasPrefix(letter)
{
result[letter]?.append(cntct)
}
}
}
print("result......\(result)")
}
Это дает мне выход, как:
result......["M": [], "K": [<App.Contact: 0x7c6703e0>], "E": [], "U": [], "Y": [], "H": [<App.Contact: 0x7c6701a0>], "X": [], "A": [<App.Contact: 0x7c670120>, <App.Contact: 0x7c670440>], "D": [<App.Contact: 0x7c6700b0>, <App.Contact: 0x7c670160>], "I": [], "R": [], "G": [], "P": [], "O": [], "L": [], "W": [], "C": [], "V": [], "J": [<App.Contact: 0x7c66f990>], "Q": [], "T": [], "B": [], "N": [], "Z": [], "S": [], "F": []]
Я хочу, чтобы результат в отсортированном порядке, как:
result......["A": [], "B": [<App.Contact: 0x7c6703e0>], "C": [], "D": []]
Что я делаю не так? Или есть ли другие, чтобы сортировать его. Благодаря!
EDIT: Я попытался следующий код, чтобы сделать правильный заказ:
let sortedArray = result.sorted
{
(struc1, struc2) -> Bool in
return struc1.key < struc2.key
}
Хорошо, это дает мне результат в правильном порядке, как я хочу. Но проблема в том, что я хочу его использовать, Но как я не знаю. Как у меня есть var arr_Contacts = [String:[Contact]]()
. Я хочу назначить sortedArray
на номер arr_Contacts
. Как я могу это сделать?
Когда я задаю это дает предупреждение, что это:
Это дает ошибку:
Вы помещаете результаты в словарь, на который вводится первая буква. Словари неупорядочены. – Paulw11
, вы можете изучить [NSOrderedDictionary] (https://cocoapods.org/pods/NSOrderedDictionary) – Fonix
Да, как я могу сделать его в правильном порядке? – Amanpreet