测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最新发布 | 2015 年 9 月 |
由 Thomas Kollbach 维护。
简化 Core Data 堆栈设置的 Core Data 控制器。
为了方便起见,TKCoreDataController
在其持久存储协调器上设置了 mainObjectContext
,并在 NSMainQueueConcurrencyType
中。
如果您需要更多上下文,则添加应如下所示:
TKCoreDataController *controller = // ...
NSMangedObjectContext *context = [[NSMangedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[context performBlock:^{
context.persistentStoreCoordinator = controller.persistentStoreCoordinator;
}];
由于迁移可能需要很长时间运行,因此在添加它们时应小心,以免阻塞界面。这对应用程序启动期间尤其有问题,因为 iOS 如果启动太慢会结束您的应用程序。
典型流程如下(省略错误处理)
TKCoreDataController *controller = // ...
NSURL *storeURL = // ...
if ([controller isMigrationRequiredForAddingStoreAtURL:storeURL error:NULL]) {
[controller addPersistentStoreAtURL:storeURL
withConfiguration:nil
options:nil
queue:NULL
migrationHandler:^(BOOL migrationRequired, NSError *error) {
if (migrationRequired) {
// show migration URL
}
}
resultHandler:^(NSPersistentStore *store, NSError *error){
// hide migration UI, show app UI
}];
} else {
[controller addPersistentStoreAtURL:storeURL
configurationName:nil
options:nil
error:NULL];
}
版权所有 © 2014,Thomas Kollbach
保留所有权利。
在满足以下条件的情况下,允许重新分配和在任何形式(包括但不限于修改)中使用源代码和二进制形式:
本软件按“原样”提供,并且版权所有者和贡献者不提供任何明示或暗示的保证,包括但不限于适销性和针对特定目的适用性的隐示保证。在任何情况下,都不应对任何直接、间接、偶然、特殊、示范性或后续损害(包括但不限于替代商品或服务的采购;使用、数据或利润损失;或业务中断)负责,即使已被告知此类损害的可能,前提是此类损害源自使用此软件,即使已告知此类损害的可能。