测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布时间最新发行版 | 2016年5月 |
由 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,您需要将其包含在您将使用它的类文件中。
#import "LBNCoreDataStack.h"
然后,您需要使用您的 Core Data 对象名称配置您的 CoreDataStack。这通常是您项目名称,如果您项目名为 MyBigProject,则可以使用
[[LBNCoreDataStack defaultStack] setResourceName:@"MyBigProject"];
建议在 AppDelegate 类中执行此操作。
好的,这就是您使用 LBNCoreDataStack 所要做的,以便开始使用它。
为了便于使用,您可以使用来自 LBNCoreDataStack 的方法与您以前从 AppDelegate 一样使用 Core Data,或者您可以使用具有简单方式包含、排除和修改您的 Core Data 实体内容的 LBNPersistence 类。
要使用它,首先导入头文件
#import "LBNPersistence.h"
实例化类
LBNPersistence = [[LBNPersistence alloc] init];
并使用这些方法
- (void)removeObject:(id)object
此方法将删除实体的一个对象并将上下文保存到磁盘。
- (void)clearEntity:(NSString *)entity Save:(BOOL)save
此方法将从指定的实体中删除所有对象。
- (void)clearDB:(void (^)(void))block
调用此方法可以清除您的 CoreData 中的所有实体。
- (NSArray *)parseJSON:(id)json ForTags:(NSArray *)tags Error:(NSError **)error
此方法将解析一个给定的格式为 NSArray 的 NSDictionary。它根据标签规则获取 JSON 并解析,然后返回格式化以便包含在实体中的 NSArray。
@{@"name":@"title",
@"type":[NSNumber numberWithUnsignedInteger:DMString],
@"operation":self.plainText,
@"toName":@"title"}
- (NSArray *)insertDataCollection:(NSArray *)collection CheckAttibutes:(NSArray *)attributes InEntity:(NSString *)entityName Saving:(BOOL)toSave
此方法将获取一个字典数组,其中的键与您的实体属性的名称相同,并检查属性以确定是否已存在相同的对象。
- (NSArray *)fetchWithPredicate:(NSPredicate *)predicate EntityName:(NSString *)entityName SortDescriptors:(NSArray *)sortDescriptors;
此方法用于获取所需实体的实例。您可以使用谓词和排序描述符来筛选和排序您的获取,或者传递nil给这些参数以获取实体的所有对象。
- (bool)isDBEmpty;
检查所有CoreData实体中的对象。
如果数据库中没有对象,则返回YES,否则返回NO。
- (void)save;
等同于数据库的提交。它将保存您在内存中进行的所有更改到磁盘上。
Luciano Bastos Nunes, [email protected]
_BLEN数据栈可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。