当前位置: 首页 > 工具软件 > RestKit > 使用案例 >

Restkit 用法

夏锐藻
2023-12-01

Restkit主要用于和Rest风格后台的交互,具体概念请自行谷歌。 github上面托管的源码地址 点击打开链接 。

下面主要说一下 Restkit 在具体项目中怎么应用:

如果看本文有点困难,请先查看这篇教程 :http://www.raywenderlich.com/58682/introduction-restkit-tutorial


Json 数据:

  1. [
  2.    {
  3.        "id": 7,
  4.        "product":
  5.        {
  6.            "id": 9,
  7.            "userinfo":
  8.            {
  9.                "id": 56,
  10.                "userType": null,
  11.                "userAccount": "2111d'd'd11",
  12.                
  13.            }
  14.            
  15.        }       
  16.    }
  17. ]

 // initialize AFNetworking HTTPClient
        NSURL *baseURL = [NSURL URLWithString:@"http://api/v1"];
        AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
        
        // initialize RestKit
        RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
        
        // setup object mappings

首先初始化Restkit ,然后定义 Mapping ,如果本地项目只是获取Json 没有用到数据的持久化(core data)建议使用AFNetworking,放弃Restkit。Mapping 的定义:


RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[User class]];
        [userMapping addAttributeMappingsFromDictionary:@{
                                                                @"id": @"uId",
                                                                @"userAccount": @"userAccount"
                                                                
                                                                }];
        
        RKObjectMapping* productMapping = [RKObjectMapping mappingForClass:[Product class]];
        [productMapping addAttributeMappingsFromDictionary:@{
                                                          @"id": @"proId",
                                                                                                                  }];
        
        [productMapping addPropertyMapping:[RKRelationshipMapping
                                            relationshipMappingFromKeyPath:@"userinfo"
                                            toKeyPath:@"user"
                                            withMapping:userMapping]];



这是一个关系Mapping ,Product 类里面有个 User类的属性。 relationshipMappingFromKeyPath 是指Json 格式里面的Key,toKeyPath是指你类里面的属性名字。Restkit 使用 Key-value 方式实现json 和 实体的映射 。所以一定要注意Mapping 的key是否正确对应json 。


最后设置Response

RKResponseDescriptor *productresponseDescriptor =
        [RKResponseDescriptor responseDescriptorWithMapping:productMapping
                                                     method:RKRequestMethodGET
                                                pathPattern:@"products"
                                                    keyPath:nil
                                                statusCodes:[NSIndexSet indexSetWithIndex:200]];
[objectManager addResponseDescriptor:productresponseDescriptor];



其中patyPattern 是相对于前面的baseurl的。相当于http://api/v1/products ,注意
pathPattern:@"products" 不能写成athPattern:@"/products" 因为Restkit貌似自动会加上 '/' 。


 

后面还会补充其他用法,如有理解错误,恳请指正。

 类似资料: