slc

SLCoreDataStack

CoreData stack managing independent 2 NSManagedObjectContext instances

Showing:

Popularity

Downloads/wk

0

GitHub Stars

64

Maintenance

Last Commit

6yrs ago

Contributors

1

Package

Dependencies

0

License

MIT

Categories

Readme

SLCoreDataStack

SLCoreDataStack provides a CoreData stack managing two NSManagedObjectContext's for you:

  • SLCoreDataStack.backgroundThreadManagedObjectContext with NSPrivateQueueConcurrencyType: Perform any changes to any CoreData model you are making here with the -[NSManagedObjectContext performBlock:] API.
  • SLCoreDataStack.mainThreadManagedObjectContext with NSMainQueueConcurrencyType: Use this context for displaying models in your UI.
  • SLCoreDataStack keeps these contexts is sync by automatically merging changes between them.
  • SLCoreDataStack supports automatic database migrations. For example: If you have three different model versions, then you can provide one migration from version 1 to version 2 and one migration from version 2 to version 3. SLCoreDataStack will find and detect available migrations and migrate an existing database under the hood for you.

Check out this blog post on why we chose this NSManagedObjectContext concept.

Getting started

NSURL *location = ...; // url to database.sqlite
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"MyModel" withExtension:@"momd"];

SLCoreDataStack *stack = [[SLCoreDataStack alloc] initWithType:NSSQLiteStoreType
    location:location
    model:modelURL
    inBundle:[NSBundle mainBundle]];

Store the stack somewhere and make it accessible as needed. You are ready to go :)

License

MIT

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100