Chocobo 0.0.4

Chocobo 0.0.4

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

无人声明 维护。



Chocobo 0.0.4

  • 作者:
  • markhazlett

将 iOS 模型 Backbone-ify 化,使其与 RESTful API 通信变得异常容易。提供方便的 API 用于连接、通信和返回成功失败事件。

安装

为了使其正常工作,您还需要执行一个步骤。向您的项目中添加一个名为 'Environment.plist' 的文件。在那里,您需要指定您要使用的不同 API 环境。

Pedro

现在最后,向您的应用的 plist 中添加一个 '配置' 参数。

# support/appName.plist

Configuration (String) 'dev(or whatever you named your environment you want to use)'

使用方法

Chocobo 允许您轻松地在 iOS 应用中创建异步模型/集合,以便与 RESTful API 通信。

模型

从 Model 对象扩展模型,并使用属性指定所有属性。

@interface User : Model

@property (nonatomic, copy) NSNumber *userId;
@property (nonatomic, copy) NSString *firstName;
@property (nonatomic, copy) NSString *lastName;
@property (nonatomic, copy) NSString *email;

@end

然后您将需要重写模型的 'updateModelWithJson:' 方法

-(void) updateModelWithJson:(NSDictionary *)json
{
    NSDictionary *attributes = [json valueForKey:@"user"];
    self.userId = [attributes valueForKey:@"id"];
    self.firstName = [attributes valueForKey:@"first_name"];
    self.lastName = [attributes valueForKey:@"last_name"];
    self.email = [attributes valueForKey:@"email"];
}

现在您可以调用

[self fetchFromEndpoint:@"login.json" withParams:parameters onSuccess:^(id responseObject) {

        NSLog(@"Do Something with your response object here");

    } onFailure:^(NSError *error)  {

        NSLog(@"Do something with the error");

    }];

集合

集合将扩展 Collection 对象。

#import "Collection.h"

@interface Users : Collection

@end

您的集合需要重写两个函数

-(id)model
{
    return @"User";
}

-(NSString *)collectionEndpoint
{
    return @"users.json";
}

这样就可以让集合自动从集合端点获取所有模型,并将它们设置在模型的数组中。

在集合中访问模型非常简单。只需使用 models 访问器即可。

[[collection models] objectAtIndex: 0];

多对多关系

在您的模型中设置多对多关系很简单。在要设置关系的模型类型上设置一个 NSMutableArray 属性。

# models/user.h

@property (nonatomic, retain) NSMutableArray *accounts;

在 updateModelWithJson: 函数内部循环合成和设置关系

# models/user.m

@synthesize wells = _wells;

-(void) updateModelWithJson:(NSDictionary *)json
{
    for (NSDictionary* key in [json valueForKey:@"accounts"]) {
        Account *accountModel = [[Account alloc] init];
        [accountModel updateModelWithJson:key];

        [self.accounts addObject:account];
    }
}

一对一关系

为了在模型中设置一对一关系,在模型上设置一个与您想要设置的类型的属性。

# models/user.h

#import 'Account.h'

@property (nonatomic, retain) Account *account;

然后,在 updateModelWithJson 中

# models/user.m

-(void) updateModelWithJson:(NSDictionary *)json
{
    Account *account = [[Account alloc] init];
    [account updateModelWithJson: [json valueForKey:@"account"]];
    self.account = account;
}

许可证

** Creative Commons 3.0 - 通过相同方式共享**

您可以混合、复制或用于商业和非商业产品和服务的用途,但需要在源代码中提供对原始工作的原始作品 "PetroFeed Inc." 的归属。您还必须按照相同的许可证共享原始作品或任何衍生作品。许可证的描述可以在 此处 找到。


感谢 PetroFeed 带来。

Pedro