What's the difference between the 5 Magical Record setup methods? What's the difference between the 5 Magical Record setup methods? ios ios

What's the difference between the 5 Magical Record setup methods?


setupCoreDataStack

Use this when you're just getting started with MagicalRecord. This will, as the method states, set up your default Core Data stack. The pieces of the stack are well know and comprise of: NSPersistentStore, NSPersistentStoreCoordinate, NSManagedObjectModel and a default NSManagedObjectContext. At least one of each of these must be instantiated and configured properly for Core Data to work. MagicalRecord provides this single method to configure your stack with a SQLite persistent store located in /Library/Application Support//.sqlite

setupAutoMigratingDefaultCoreDataStack

When you version your model, you will need to migrate your data. This method will do the same as the previous (above) method, but will also enable Auto Migrations.

setupCoreDataStackWithInMemoryStore;

Sometimes, such as when you're writing unit tests, you want your data to go away when your app terminates. This method will also set up a CoreData stack (as mentioned above) but instead of a SQLite store, it creates a persistent store in system memory (RAM).

setupCoreDataStackWithStoreNamed:(NSString *)storeName

Sometimes you want to customize the file name where your data resides. This method does the same as the first, namely setting up the core data stack, and placing a SQLite store in the specific location, but instead of .sqlite, the store is named storeName.sqlite

setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName

This does the same as the above method, but also enabled auto migrations. You'll need to do this when you version your model and have a simple migration that simply needs to be enabled.

You can read more on Core Data migrations on Apple's Core Data Reference Documentation