illescasDaniel / CoreDataContextManager

A group of useful methods on top of core data context [iOS Swift]

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CoreDataContextManager

A group of useful methods on top of core data context.

Compatible with SwiftUI.

Note: this package may need some testing before using on a real project.

Interface

extension NSManagedObjectContext {

    public var manager: CoreDataContextManager { get }
}

public class CoreDataContextManager {

    public init(context: NSManagedObjectContext)
    
    //

    public func insert<ManagedObject>(_ object: ManagedObject) throws where ManagedObject : NSManagedObject

    public func delete<ManagedObject>(_ object: ManagedObject) throws where ManagedObject : NSManagedObject

    public func object<ManagedObject>(with objectID: NSManagedObjectID) throws -> ManagedObject where ManagedObject : NSManagedObject

    public func request<RequestResult>() -> RequestBuilder<RequestResult> where RequestResult : NSFetchRequestResult

    public func fetch<RequestResult>(_ fetchRequest: NSFetchRequest<RequestResult>) throws -> [RequestResult] where RequestResult : NSFetchRequestResult

    public func performAsync(_ block: @escaping () -> Void)

    public func save() throws

    public func transaction(_ transactionBlock: () throws -> Void) throws

	// Undo manager
	
    public var undoManager: UndoManager? { get set }

    public func undoGrouping(_ block: () -> Void)

    public func undoAll()

    public func undoLast()

    public func redo()

    public func reset()

    public func rollback()
}

About

A group of useful methods on top of core data context [iOS Swift]

License:MIT License


Languages

Language:Swift 100.0%