Skip to content

Instantly share code, notes, and snippets.

@mingsai
Last active October 12, 2015 16:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mingsai/34b856f068ad428f16cb to your computer and use it in GitHub Desktop.
Save mingsai/34b856f068ad428f16cb to your computer and use it in GitHub Desktop.
//Source (http://christiantietze.de/posts/2015/10/results-from-fetch-requests/)
import Foundation
import CoreData
enum CoreDataError: ErrorType {
case InconsistentCoreDataFetchRequestResults
}
class CoreDataFetchRequest<T: NSManagedObject> {
let fetchRequest: NSFetchRequest
var predicate: NSPredicate? {
get { return fetchRequest.predicate }
set { fetchRequest.predicate = newValue }
}
convenience init(entityName: String) {
self.init(fetchRequest: NSFetchRequest(entityName: entityName))
}
init(fetchRequest: NSFetchRequest) {
self.fetchRequest = fetchRequest
}
func executeInContext(context: NSManagedObjectContext) throws -> [T] {
let results = try context.executeFetchRequest(fetchRequest)
guard let properResults = results as? [T] else {
throw CoreDataError.InconsistentCoreDataFetchRequestResults
}
return properResults
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment