Skip to content

Instantly share code, notes, and snippets.

@michael-mckenna
Last active June 29, 2020 03:47
Show Gist options
  • Save michael-mckenna/6b09529e529c56aa851d180cc50e4afb to your computer and use it in GitHub Desktop.
Save michael-mckenna/6b09529e529c56aa851d180cc50e4afb to your computer and use it in GitHub Desktop.
Core Data Concurrency - Query
static func searchUserBy(id: Int, in context: NSManagedObjectContext, completionHandler: @escaping (_ managedObjects: User?) -> Void) {
context.perform {
//searching core data
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "User")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format: "id == %@", "\(id)")
do {
let results = try context.fetch(request)
if let managedObjects = results as? [NSManagedObject], let user = managedObjects.first {
completionHandler(user)
} else {
completionHandler(nil)
}
} catch {
print(error)
completionHandler(nil)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment