2014-03-05 22 views
0

我正在使用RestKit將數據從my api映射到CoreData實體,我不知道如何從響應中獲得其他數據。比如像我的API返回結構:RestKit其他數據作爲迴應

{ 
    "items": [ 
     { 
      "id": 1, 
      "title": "Title" 
     }, 
     { 
      "id": 2, 
      "title": "Title 2" 
     } 
    ], 
    "someParameter": "someValue" 
} 

我已經有共享對象管理器右邊的映射,所以我剛剛發送的請求:

[[RKObjectManager sharedManager] getObjectsAtPath:@"_api/items" 
             parameters:parameters 
              success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
               //handle success 
              } 
              failure:^(RKObjectRequestOperation *operation, NSError *error) { 
               //handle error 
              }]; 

我怎麼能在success塊獲得someParameter價值?這可能嗎?

回答

2

你需要稍微調整你的映射。如果您按照以下方式進行了更改,則應該可以讓RESTkit爲您解析「someParameter」屬性。你需要有兩個班級(家長和孩子)。

父類有2個屬性(someParameter和一個Child對象數組)。 addRelationshipMappingWithSourceKeyPath是將Parent和Child對象映射關聯在一起的東西。

代碼:

RKObjectMapping *parentMapping = [RKObjectMapping mappingForClass:[Parent class]]; 
[beaconActionMapping addAttributeMappingsFromDictionary:@{ 
                  @"someParameter" : @"someParameter" 
                 }]; 


RKObjectMapping *childMapping = [RKObjectMapping mappingForClass:[Child class]]; 
[beaconMapping addAttributeMappingsFromDictionary:@{ 
                @"id" : @"childId", 
                @"title" : @"title" 
                }]; 


[parentMapping addRelationshipMappingWithSourceKeyPath:@"items" mapping:childMapping]; 

類層次結構:

@interface Parent : NSObject 
@property(nonatomic,strong) NSString *someParameter; 
@property(nonatomic,strong) NSArray *items; // Array of Child objects 
@end 

@interface Child : NSObject 
@property(nonatomic,strong) NSString *childId; 
@property(nonatomic,strong) NSString *title 
@end 
0

您可以用someParameter關鍵路徑添加額外的響應描述。您可以將其與nil關鍵路徑映射一起使用,以將字符串值提取到您選擇的對象(通常是自定義類)中。

相關問題