Как я могу отфильтровать массив объектов, используя NSPredicate
?
Я нашел похожий вопрос с ответом здесь ( Как отфильтровать массив с помощью NSPredicate в swift 3 ) Но он не использует NSPredicate
.
class Person {
let firstName: String
let lastName: String
let age: Int
init(firstName: String, lastName: String, age: Int) {
self.firstName = firstName
self.lastName = lastName
self.age = age
}
var description: String {
return "\(firstName) \(lastName)"
}
}
let alice = Person(firstName: "Alice", lastName: "Smith", age: 24)
let bob = Person(firstName: "Bob", lastName: "Jones", age: 27)
let charlie = Person(firstName: "Charlie", lastName: "Smith", age: 33)
let quentin = Person(firstName: "Quentin", lastName: "Alberts", age: 31)
let people = [alice, bob, charlie, quentin]
let bobPredicate = NSPredicate(format: "firstName = 'Bob'")
let smithPredicate = NSPredicate(format: "lastName = %@", "Smith")
let thirtiesPredicate = NSPredicate(format: "age >= 30")
Я пытался использовать это. Но это дает мне ошибку выполнения.
let filteredBob = (people as NSArray).filtered(using: bobPredicate)