Restkit 简单使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cai610182473/article/details/50821028

看到一位大神的代码,感觉就是:简介、精炼,自愧不如啊。

看到他使用了一个第三方库叫Restkit,感觉不错,有兴趣的朋友可以移步github。用途自己百度。


直接看代码

    
    RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[self class]];
    [mapping addAttributeMappingsFromDictionary:@{
                                                  @"missionDescription":   @"missionDescription",
                                                  @"createTime":@"createTime111"
                                                  }];
    
    NSIndexSet *statusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful); // Anything in 2xx

    
    RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping
                                                                                            method:RKRequestMethodAny
                                                                                       pathPattern:nil
                                                                                           keyPath:@"tasks"
                                                                                       statusCodes:statusCodes];
    
    
    NSURL *url = [NSURL URLWithString:@"http://10.0.1.222:8080/ulineserver/task/nearby?longitude=12&latitude=12"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[responseDescriptor]];
    [operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
        NSArray *arr=[result array];
        NSLog(@"The public timeline Tweets: %@", [result array]);
    } failure:nil];
    [operation start];

下面稍微说明一下

请求返回的数据格式是这样的 json:




响应码



简单说明一下:

1、

    [mapping addAttributeMappingsFromDictionary:@{

                                                  @"missionDescription":  @"missionDescription",

                                                  @"createTime":@"createTime111"

                                                  }];

也可以 用这个方法

[mapping addAttributeMappingsFromArray:@[@"missionDescription",@"createTime"]];


作用是一样的。上面可以对 属性名称修改。你可以把createTime 改为timer  

addAttributeMappingsFromArray则不可以,他里面的数组必须和[self class] 中的属性名称一样,否则会报错。



2、

    RKResponseDescriptor *responseDescriptor = [RKResponseDescriptorresponseDescriptorWithMapping:mapping

                                                                                           method:RKRequestMethodAny

                                                                                      pathPattern:nil

                                                                                          keyPath:@"tasks"

                                                                                      statusCodes:statusCodes];

keyPath 是根据json 第一层来决定的。

statusCodes不知道什么鬼,可以为nil





展开阅读全文

没有更多推荐了,返回首页