SLCoreDataStack provides a CoreData stack managing two
NSManagedObjectContext's for you:
NSPrivateQueueConcurrencyType: Perform any changes to any CoreData model you are making here with the
NSMainQueueConcurrencyType: Use this context for displaying models in your UI.
SLCoreDataStackkeeps these contexts is sync by automatically merging changes between them.
SLCoreDataStacksupports 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.
SLCoreDataStackwill 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
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 :)