         }
     }
     
+    /**
+    Delete all managed objects using predicate
+    
+    :param: entityName
+    :param: predicate
+    :param: context
+    :param: error
+    */
     func delete(#entityName: String, predicate: NSPredicate? = nil, context: NSManagedObjectContext, error: NSErrorPointer) {
         if let objects = read(entityName, predicate: predicate, context: context, error: error) as? [NSManagedObject] {
             for object: NSManagedObject in objects {

    
    :param: context
    */
    func recursiveSave(context: NSManagedObjectContext?, error: NSErrorPointer) {
        if let parentContext = context?.parentContext {
            parentContext.performBlock({ () -> Void in
                if parentContext.save(error) {

        }
    }

    /**
    Delete a managed object
    
    :param: object managed object
    */
    func delete(object: NSManagedObject?) {
        if let object = object {
            if let context = object.managedObjectContext {
