LSCoreDataManager 1.3.1

LSCoreDataManager 1.3.1

测试已测试
语言语言 Obj-CObjective C
许可证 自定义
发布日期最新发布2015年5月

Luca Serpico 维护。



这是一个非常好的库,它可以简化核心数据的管理,从而提高开发者进行性能管理的效率。在核心数据的使用中,最大的影响主要是在将数据保存到磁盘时以及在主上下文进行大量事务时。这个库可以帮助开发者最大限度地使用主上下文和数据在磁盘上的保存,从而提高应用程序的性能。

如何开始

下载项目,并将文件 LSCoreDataManager.hLSCoreDataManager.m 导入到您的项目中

Podfile

platform :ios, '7.0'
pod "LSCoreDataManager"

使用方法

创建一个没有 Core Data 的新项目,然后在左侧菜单 "文件 -> 新建 -> 文件" 中选择 "Core Data",创建一个新的数据模型并命名为例如 "LSModel"。现在在项目中包含库,如上所述,并将其放置在 AppDelegate.m 中以下代码

#import "LSCoreDataManager.h"

然后将其放在 application:didFinishLaunchingWithOptions:

NSURL *applicationDocumentsDirectory = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"LSModel" withExtension:@"momd"];

NSURL *storeURL = [applicationDocumentsDirectory URLByAppendingPathComponent:@"LSModel.sqlite"];

[[LSCoreDataManager sharedInstance] setupWithModelUrl:modelURL storeUrl:storeURL];

现在您的 Core Data 已经准备好了,您只需要将 LSCoreDataManager.h 导入所有您想使用的类中。

最佳实践

仅使用主上下文进行获取请求,或者尝试最小化在该上下文上的插入、修改和删除操作,使用通过 temporaryContext 获取的临时上下文。保存临时上下文时,自动在主上下文中显示更改。这将极大地提高性能。

注意

始终把上下文存储在您的变量中。从管理者调用上下文会导致内存泄漏。请看示例:self.context = [[LSCoreDataManager sharedInstance] mainObjectContext];

始终使用 saveContext: 方法来保存所有上下文。所有内容都会保存,从而避免阻塞 UI。

此类逻辑遵循本文中描述的逻辑:http://www.cocoanetics.com/2012/07/multi-context-coredata/,并包含一些来自 http://nuthole.com/blog/2012/11/07/could-core-data-be-a-little-more-concise/ 的代码。