Skip to content

Instantly share code, notes, and snippets.

@daehn
Last active August 31, 2015 15:20
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 daehn/402e4931fbb70f99900b to your computer and use it in GitHub Desktop.
Save daehn/402e4931fbb70f99900b to your computer and use it in GitHub Desktop.
Small NSManagedObject extension to simplify fetching and creating objects.
import Foundation
import CoreData
extension NSManagedObject {
class var entityName: String {
return NSStringFromClass(self).componentsSeparatedByString(".").last!
}
convenience init(context: NSManagedObjectContext) {
let entityDescription = NSEntityDescription.entityForName(self.dynamicType.entityName, inManagedObjectContext: context)!
self.init(entity: entityDescription, insertIntoManagedObjectContext: context)
}
class func fetchRequest(predicate: NSPredicate? = nil, sortDescriptors: [NSSortDescriptor]? = nil) -> NSFetchRequest {
let request = NSFetchRequest(entityName: self.entityName)
request.predicate = predicate
request.sortDescriptors = sortDescriptors
return request
}
class func allInstances(context: NSManagedObjectContext, predicate: NSPredicate? = nil, sortDescriptors: [NSSortDescriptor]? = nil) throws -> [NSManagedObject]? {
let request = self.fetchRequest(predicate, sortDescriptors: sortDescriptors)
return try context.executeFetchRequest(request) as? [NSManagedObject]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment