CBRRESTConnection 1.4.2

CBRRESTConnection 1.4.2

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

Oliver Letterer 维护。



 
取决于
AFNetworking~> 3.0
CloudBridge~> 1.4
 

CloudBridge 帮助同步您的 CoreData 管理对象与各种云后端,并带有对 RESTful JSON 后端和 CloudKit 的原生支持。

公共 API

CloudBridge 在 NSManagedObject 上暴露以下便捷方法

+ (void)fetchObjectsMatchingPredicate:(NSPredicate *)predicate
                withCompletionHandler:(void(^)(NSArray *fetchedObjects, NSError *error))completionHandler;

- (void)fetchObjectsForRelationship:(NSString *)relationship withCompletionHandler:(void(^)(NSArray *objects, NSError *error))completionHandler;

- (void)createWithCompletionHandler:(void(^)(id managedObject, NSError *error))completionHandler;
- (void)reloadWithCompletionHandler:(void(^)(id managedObject, NSError *error))completionHandler;
- (void)saveWithCompletionHandler:(void(^)(id managedObject, NSError *error))completionHandler;
- (void)deleteWithCompletionHandler:(void(^)(NSError *error))completionHandler;

这些方法可以从任何 NSManagedObjectContext 线程中进行调用,并通过管理对象的 CBRCloudBridge 进行路由。回调始终保证在主线程上交付。

快速入门

要开始使用 NSManagedObject 上的便捷方法,您需要配置一个 CBRCloudBridge 实例。一个 CBRCloudBridge 实例负责在 CoreDataStack 与您的后端之间进行桥接。

1. 实现实例化 Your CoreDataStack

因为设置正确并负责的 CoreData stack 可能具有挑战性,所以 CloudBridge 依赖于 SLCoreDataStack,它可以为您处理所有繁重的工作和边缘情况。将您的应用程序特定 CoreData stack 实现为一个 SLCoreDataStack 的子类。

@interface MyCoreDataStack : SLCoreDataStack
@end

@implementation MyCoreDataStack

- (NSString *)managedObjectModelName
{
    return @"MyManagedObjectModel";
}

@end

2. 选择您云后端

与每个云后端的实际通信封装在一个符合 CBRCloudConnection 协议的对象中,并作为它自己的 CocoaPod 依赖项提供。

如果您想连接到 CloudKit 后端,请在 Podfile 中添加 pod 'CBRCloudKitConnection'。如果您想连接到 RESTful JSON 后端,请在 Podfile 中添加 pod 'CBRRESTConnection'

更多相关信息可参阅 CBRRESTConnectionCBRCloudKitConnection 文档。

3. 设置 CloudBridge

作为最后一步,按照以下方式设置 CloudBridge 栈:

CloudKit 后端

CKDatabase *database = [CKContainer defaultContainer].privateCloudDatabase;
MyCoreDataStack *stack = [MyCoreDataStack sharedInstance];
CBRCloudKitConnection *connection = [[CBRCloudKitConnection alloc] initWithDatabase:database];

CBRCloudBridge *cloudBridge = [[CBRCloudBridge alloc] initWithCloudConnection:connection coreDataStack:stack];
[NSManagedObject setCloudBridge:cloudBridge];

RESTful 后端

NSURL *serverURL = ...;
MyCoreDataStack *stack = [MyCoreDataStack sharedInstance];

id<CBRPropertyMapping> propertyMapping = [[CBRUnderscoredPropertyMapping alloc] init];
CBRRESTConnection *connection = [[CBRRESTConnection alloc] initWithBaseURL:serverURL propertyMapping:propertyMapping];

CBRCloudBridge *cloudBridge = [[CBRCloudBridge alloc] initWithCloudConnection:connection coreDataStack:stack];
[NSManagedObject setCloudBridge:cloudBridge];

4. 享受使用

安装

组件状态

组件 状态 版本 许可证 平台
CloudBridge
CBRRESTConnection
CBRCloudKitConnection
CBRManagedObjectCache
CBRManagedObjectFormViewController
CBRRelationshipResolver

作者

Oliver Letterer, [email protected]

许可

CloudBridge遵循MIT许可协议。更多信息请参阅LICENSE文件。