用于过滤数组的 NSPredicate
NSPredicate for filtering array
我卡在数组排序上了。
我想按名称对数组进行排序:
var mesta: NSArray = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let predicate = NSPredicate(format: "SELF contains %@", zkouska)
print(mesta.filter{ predicate.evaluate(with: [=10=])})
它打印 [ceska lipa, liptakov],但我想先 liptakov,因为字母 lip 早于 捷克利帕
我想要结果 [liptakov, ceska lipa]
我试过了:
let predicate = NSPredicate(format: "SELF BEGINSWITH %@", zkouska)
但它只打印 liptakov
var mesta = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let filtered = mesta.filter { [=10=].contains(zkouska) }
let sorted = filtered.sorted {
return [=10=].range(of: zkouska)!.lowerBound < .range(of: zkouska)!.lowerBound
}
print(sorted) // ["liptakov", "ceska lipa"]
我卡在数组排序上了。
我想按名称对数组进行排序:
var mesta: NSArray = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let predicate = NSPredicate(format: "SELF contains %@", zkouska)
print(mesta.filter{ predicate.evaluate(with: [=10=])})
它打印 [ceska lipa, liptakov],但我想先 liptakov,因为字母 lip 早于 捷克利帕
我想要结果 [liptakov, ceska lipa]
我试过了:
let predicate = NSPredicate(format: "SELF BEGINSWITH %@", zkouska)
但它只打印 liptakov
var mesta = ["ceska lipa", "budejovice", "liptakov"]
var zkouska = "lip"
let filtered = mesta.filter { [=10=].contains(zkouska) }
let sorted = filtered.sorted {
return [=10=].range(of: zkouska)!.lowerBound < .range(of: zkouska)!.lowerBound
}
print(sorted) // ["liptakov", "ceska lipa"]