Reputation: 476
I am stuck on sorting in the array.
I want to sort array by name:
var mesta: NSArray = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let predicate = NSPredicate(format: "SELF contains %@", zkouska)
print(mesta.filter{ predicate.evaluate(with: $0)})
It prints [ceska lipa, liptakov], but I want to liptakov first, because letters lip are earlier than ceska lipa
I want result [liptakov, ceska lipa]
I tried:
let predicate = NSPredicate(format: "SELF BEGINSWITH %@", zkouska)
but it prints only liptakov
Upvotes: 0
Views: 50
Reputation: 14040
var mesta = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let filtered = mesta.filter { $0.contains(zkouska) }
let sorted = filtered.sorted {
return $0.range(of: zkouska)!.lowerBound < $1.range(of: zkouska)!.lowerBound
}
print(sorted) // ["liptakov", "ceska lipa"]
Upvotes: 2