Skip to content

Instantly share code, notes, and snippets.

@haoyu-c
Last active November 5, 2019 12:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save haoyu-c/fc54d758dd8c530010ae11445d2d5eab to your computer and use it in GitHub Desktop.
Save haoyu-c/fc54d758dd8c530010ae11445d2d5eab to your computer and use it in GitHub Desktop.
@objcMembers class Person: NSObject {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let personArray = [Person(name: "Amy", age: 9), Person(name: "Lily", age: 10), Person(name: "Sam", age: 12), Person(name: "Eric", age: 18)]
let predicates = [NSPredicate(format: "age > 10"), NSPredicate(format: "name in {'Sam', 'Eric'}"), NSPredicate(format: "age > 10 and age < 20"), NSPredicate(format: "name contains 'a'"), NSPredicate(format: "name like '??m'"), NSPredicate(format: "name = %@", "Lily"), NSPredicate(format: "%K = 12", #keyPath(Person.age))]
let results = predicates.map { predicate in
personArray.filter { person in
predicate.evaluate(with: person)
}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment