Ich hole Daten vom Modell, d. H. Contacts
. Dann sortiere ich dieses Modell nach name
Eigenschaft. Aber das Ergebnis ist nicht sortiert. Ich verwende folgenden Code Daten zu sortieren:Sortierung in 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)")
}
Es gibt mir eine Ausgabe wie:
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": []]
Ich möchte Ausgabe in sortierter Weise wie:
result......["A": [], "B": [<App.Contact: 0x7c6703e0>], "C": [], "D": []]
Was mache ich falsch? Oder gibt es noch etwas, um es zu sortieren? Vielen Dank!
EDIT: Ich habe versucht, Code folgende richtigen Reihenfolge zu machen:
let sortedArray = result.sorted
{
(struc1, struc2) -> Bool in
return struc1.key < struc2.key
}
Ok, das gibt mir in der richtigen Reihenfolge ergeben, wie ich will. Aber das Problem ist, ich möchte es verwenden, aber wie ich es nicht weiß. So wie ich habe var arr_Contacts = [String:[Contact]]()
. Ich möchte sortedArray
zu arr_Contacts
zuweisen. Wie kann ich das machen?
Wenn ich es gibt Warnung zuweisen, ist:
Es gibt Fehler:
Sie geben die Ergebnisse in ein Wörterbuch ein, das durch den ersten Buchstaben angegeben wird. Wörterbücher sind ungeordnet. – Paulw11
möchten Sie möglicherweise mit einem [NSOrderedDictionary] (https://cocoapods.org/pods/NSOrderedDictionary) – Fonix
untersuchen Ja, wie kann ich es in der richtigen Reihenfolge machen? – Amanpreet