LBNCoreDataStack 0.1.3

LBNCoreDataStack 0.1.3

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最新发行版2016年5月

Luciano Bastos Nunes 维护。



  • 作者
  • Luciano Bastos Nunes

安装

LBNCoreDataStack 可以通过 CocoaPods 获得。为了安装它,只需将以下行添加到您的 Podfile 中

pod "LBNCoreDataStack"

要求

iOS 7.1 或更高版本。

开始

您可以删除在 AppDelegate.m 和 AppDelegate.h 中添加的所有与 CoreData 相关的代码。

In AppDelegate.m 它将在以下行之后

#pragma mark - Core Data stack

和这行之后

#pragma mark - Core Data Saving support

从 AppDelegate.h 中移除以下行

#import <CoreData/CoreData.h>

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

- (void)saveContext;
- (NSURL *)applicationDocumentsDirectory;

这些代码将由 LBNCoreDataStack 处理,您无需再关心这些。

用法

LBNCoreDataStack

要使用 LBNCoreDataStack,您需要将其包含在您将使用它的类文件中。

#import "LBNCoreDataStack.h"

然后,您需要使用您的 Core Data 对象名称配置您的 CoreDataStack。这通常是您项目名称,如果您项目名为 MyBigProject,则可以使用

[[LBNCoreDataStack defaultStack] setResourceName:@"MyBigProject"];

建议在 AppDelegate 类中执行此操作。

好的,这就是您使用 LBNCoreDataStack 所要做的,以便开始使用它。

LBNPersistence

为了便于使用,您可以使用来自 LBNCoreDataStack 的方法与您以前从 AppDelegate 一样使用 Core Data,或者您可以使用具有简单方式包含、排除和修改您的 Core Data 实体内容的 LBNPersistence 类。

要使用它,首先导入头文件

#import "LBNPersistence.h"

实例化类

LBNPersistence = [[LBNPersistence alloc] init];

并使用这些方法

移除对象

- (void)removeObject:(id)object
摘要

此方法将删除实体的一个对象并将上下文保存到磁盘。

参数
  • object:您想从实体中删除的实体对象。

清空实体

- (void)clearEntity:(NSString *)entity Save:(BOOL)save
摘要

此方法将从指定的实体中删除所有对象。

参数
  • entity:您想要清除的实体名称。
  • save:一个布尔值,用于定义在删除您的实体的对象后,上下文是否将保存到磁盘。如果上下文没有保存,您的更改在下一次进入您的应用程序时将没有效果。这与在 clearEntity 后调用 save 方法的效果相同。

clearDB

- (void)clearDB:(void (^)(void))block
摘要

调用此方法可以清除您的 CoreData 中的所有实体。

参数
  • block:当清理完成后执行的回调。

parseJSON

- (NSArray *)parseJSON:(id)json ForTags:(NSArray *)tags Error:(NSError **)error
摘要

此方法将解析一个给定的格式为 NSArrayNSDictionary。它根据标签规则获取 JSON 并解析,然后返回格式化以便包含在实体中的 NSArray

参数
  • json:包含格式化的内容 NSDictionaryNSArray。未来版本将能够接收单个 NSDictionary 而不是 NSArray,如果需要的话。
  • tags:将帮助将 JSON 解析为可传递给 insertDataCollection 方法的格式的规则数组。
  • error:一个 NSError 对象的引用,在执行后,将具有 NSError 错误或 nil 的值。##### 示例:这是 tags 的内容
@{@"name":@"title",
@"type":[NSNumber numberWithUnsignedInteger:DMString],
@"operation":self.plainText,
@"toName":@"title"}
  • name:json中的键名称
  • type:您希望解析数组中的内容的类型。此键必须符合 DMTagType
  • operation:这是一个可选的键。它是一个块,用于接收您的数据并对其进行任何类型的处理,然后返回它
  • toName:将在解析后成为您键的名称。建议在使用插入到 CoreData 上的方法时使用与实体中的属性相同的名称。

insertDataCollection

- (NSArray *)insertDataCollection:(NSArray *)collection CheckAttibutes:(NSArray *)attributes InEntity:(NSString *)entityName Saving:(BOOL)toSave
摘要

此方法将获取一个字典数组,其中的键与您的实体属性的名称相同,并检查属性以确定是否已存在相同的对象。

参数
  • collection:包含要插入到您的 CoreData 实体的数据的 NSArray。此 NSDictiorary 的键必须与其实体的 attibutesrelationship 的名称相同。您可以省略键,如果实体的属性是可选的。
  • attributes:这可以是一个包含您想要检查是否存在相同值的属性名称的 NSArray。如果您尝试包含在实体中的值已经存在,此方法将更新现有的对象而不是创建新的对象。
  • inEntity:您想包含您的集合的实体名称。
  • toSave: 一个布尔值,用于定义在包含CoreData中的数据后,您是想将其保存到磁盘上还是仅在内存中留下。等同于数据库的提交。##### 返回 返回一个包含要插入集合中实体的 NSArray

fetchWithPredicate

- (NSArray *)fetchWithPredicate:(NSPredicate *)predicate EntityName:(NSString *)entityName SortDescriptors:(NSArray *)sortDescriptors;
摘要

此方法用于获取所需实体的实例。您可以使用谓词和排序描述符来筛选和排序您的获取,或者传递nil给这些参数以获取实体的所有对象。

参数
  • predicate:用于筛选实体获取的谓词。
  • entityName:尝试获取数据的实体的名称。
  • sortDescriptors:您可以传递一个包含 NSSortDescriptorsNSArray 以按所需方式排序获取数据。##### 返回 返回包含获取的实体实例的 NSArray,如果没有找到实例,则返回 nil。

isDBEmpty

- (bool)isDBEmpty;
摘要

检查所有CoreData实体中的对象。

返回

如果数据库中没有对象,则返回YES,否则返回NO。

save

- (void)save;
摘要

等同于数据库的提交。它将保存您在内存中进行的所有更改到磁盘上。

作者

Luciano Bastos Nunes, [email protected]

许可

_BLEN数据栈可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。