SLCoreDataStack
为您提供一个管理两个 NSManagedObjectContext
的数据堆栈
SLCoreDataStack.backgroundThreadManagedObjectContext
(后台线程数据上下文):使用 -[NSManagedObjectContext performBlock:]
API 在这里对任何 CoreData 模型进行任何更改。SLCoreDataStack.mainThreadManagedObjectContext
(主线程数据上下文):使用此上下文来在 UI 中显示模型。SLCoreDataStack
通过自动合并两个上下文之间的更改来同步这些上下文。SLCoreDataStack
支持自动数据库迁移。例如:如果您有三个不同的模型版本,那么您可以提供一个从版本 1 到版本 2 的迁移和一个从版本 2 到版本 3 的迁移。SLCoreDataStack
会找到并检测可用的迁移,并为您在后台迁移现有的数据库。请参阅关于我们为什么选择这个 NSManagedObjectContext
概念的这篇博客文章:链接。
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]];
将堆栈存储在某个位置,并在需要时使其可用。您就可以开始了 :)
MIT