TKCoreDataController 0.0.7

TKCoreDataController 0.0.7

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2015 年 9 月

Thomas Kollbach 维护。



  • 作者:
  • 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];
}

BSD 许可证

版权所有 © 2014,Thomas Kollbach

保留所有权利。

在满足以下条件的情况下,允许重新分配和在任何形式(包括但不限于修改)中使用源代码和二进制形式:

  • 源代码重新分配必须保留上述版权声明、本条件列表和以下免责声明。
  • 二进制形式的重新分配必须在本文档和/或与分配合供的其他材料中复制上述版权声明、本条件列表和以下免责声明。
  • 未经事先书面许可,不得使用 TKCoreDataController 或其贡献者的名称来认可或推广此软件派生的产品。

本软件按“原样”提供,并且版权所有者和贡献者不提供任何明示或暗示的保证,包括但不限于适销性和针对特定目的适用性的隐示保证。在任何情况下,都不应对任何直接、间接、偶然、特殊、示范性或后续损害(包括但不限于替代商品或服务的采购;使用、数据或利润损失;或业务中断)负责,即使已被告知此类损害的可能,前提是此类损害源自使用此软件,即使已告知此类损害的可能。