Giter Site home page Giter Site logo

coredatamate's Introduction

CoreDataMate

CoreDataMate is a lightweight CoreData assistant. It gives you all of the control of CoreData, but helps you manage it.

Version Platform

Installation

CoreDataMate is available through CocoaPods, to install it simply add the following line to your Podfile:

pod "CoreDataMate"

Use

Setup

Setup your Core Data store in your UIApplicationDelegate during your application's launch:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [CDMDataManager setupWithDataModelName:@"ModelName" storeName:@"StoreName" persistenceType:NSSQLiteStoreType];

    // Perform any other necessary setup

    return YES;
}

Main Queue Work

If you need to perform operations on the main queue, grab the mainContext from the CDMDataManager and perform your actions. After you are finished, simply persist the CDMDataManager instance.

NSManagedObjectContext *context = [[CDMDataManager sharedManager] mainContext];

// Perform main queue operations

[[CDMDataManager sharedManager] persist:YES];

Background Queue Work

If you need to perform operations on a background queue, create a temporary NSManagedObjectContext in your background queue and set it's parent context to CDMDataManager's mainContext. You can then perform your actions. Once you are finished, save your temporary context. After your temporary context is persisted, persist the CDMDataManager instance.

NSManagedObjectContext *temporaryContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[temporaryContext setParentContext:[[CDMDataManager sharedManager] mainContext]];

// Perform background queue operations

// This call writes your changes to CDMDataManager's mainContext
BOOL successfulSave = [temporaryContext save:&error];
if ( successfulSave )
{
  // This call writes your changes to the store
  [[CDMDataManager sharedManager] persist:YES];
}

Remember: Your data is not fully persisted until the CDMDataManager instance is persisted. This persist call is the permanent persist call.

Author

Todd Grooms, [email protected]

License

CoreDataMate is available under the MIT license. See the LICENSE file for more info.

coredatamate's People

Contributors

groomsy avatar

Watchers

James Cloos avatar Jonathan Wiley avatar Travis Smith avatar Patrick Goley avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.