任何人都可以对5种设置方法中的每一种进行描述吗?
(void) setupCoreDataStack;
(void) setupAutoMigratingDefaultCoreDataStack;
(void) setupCoreDataStackWithInMemoryStore;
(void) setupCoreDataStackWithStoreNamed:(NSString *)storeName;
(void) setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName;
他们各自做了什么以及每个用例的用例是什么?
答案 0 :(得分:27)
setupCoreDataStack
当您刚开始使用MagicalRecord时使用此功能。正如方法所述,这将设置您的默认核心数据堆栈。堆栈的各个部分是众所周知的,包括:NSPersistentStore,NSPersistentStoreCoordinate,NSManagedObjectModel和默认的NSManagedObjectContext。必须对这些中的每一个进行实例化和配置,以使Core Data能够正常工作。 MagicalRecord提供了这种单一方法,可以使用位于/ Library / Application Support中的SQLite持久性存储来配置堆栈.sqlite
setupAutoMigratingDefaultCoreDataStack
在对模型进行版本控制时,您需要迁移数据。此方法将与上一个(上述)方法相同,但也将启用自动迁移。
setupCoreDataStackWithInMemoryStore;
有时,例如在您编写单元测试时,您希望在应用终止时数据消失。此方法还将设置CoreData堆栈(如上所述),但它不是SQLite存储,而是在系统内存(RAM)中创建持久存储。
setupCoreDataStackWithStoreNamed:(NSString *)storeName
有时您想要自定义数据所在的文件名。此方法与第一个方法相同,即设置核心数据堆栈,并将SQLite存储放置在特定位置,但不是.sqlite,而是将商店命名为storeName.sqlite
setupCoreDataStackWithAutoMigratingSqliteStoreNamed:(NSString *)storeName
这与上述方法相同,但也启用了自动迁移。在对模型进行版本化并且只需要启用简单迁移时,您需要执行此操作。
上阅读有关Core Data迁移的更多信息