GET API调用的Restkit对象映射不起作用

时间:2015-01-16 15:53:02

标签: objective-c swift restkit

我是Restkit响应映射的新手。我无法正确映射它。我有所有必要属性的事件和场地模型。任何人都可以为它设置请求映射。提前致谢。 打印mappingResult的描述:

<RKMappingResult: 0x7b1e2da0, results={
    "" =     {
        events =         (
                        {
                date = "Saturday,17 Jan 2015";
                "event_list" =                 (
                                        {
                        "already_attending" = 0;
                        attending = 1;
                        description = "<null>";
                        "event_end_date" = "Saturday,17 Jan 2015 07:30pm";
                        "event_start_date" = "Saturday,17 Jan 2015 07:30pm";
                        id = 54b3e2fe7265646a782f0000;
                        "is_limited" = 1;
                        "is_private_community_event" = 1;
                        name = Drinks;
                        picture = "http://veozen.systech-soft.com/pictures/original/missing.png";
                        "user_picture" = "http://veozen.systech-soft.com/profile_pictures/original/missing.png";
                        venue =                         {
                            latitude = "51.505968";
                            longitude = "-0.027865";
                            "venue_address" = "4.3";
                            "venue_name" = "Cafe Brera";
                            "venue_picture" = "https://maps.googleapis.com/maps/api/place/photo?photoreference=CnRnAAAAZk6z2twchk-xU6AGo-ZwK6ykDWTsf6LWh6TjX0ho7K5gLqr4-FkAtGpSr9MNK4Ytc7ejQerAvTO7w2_-fFUoTFF_W_vG3isNz3rKzxf-WMep-VC2loBE2Exmt4Lbr8q4kTKdwUNpckm5Lqy1b7UXTBIQeZjov6oDTrT21gjtv0XzYBoUetjjOaRuGeX262g6k4V8U0-o1H8&key=AIzaSyDfB1L32kL2bgdd0Wz5IJTeI0OiHONLmbQ&sensor=false&maxwidth=320";
                        };
                    }
                );
            }
        );
 }; 
}>

在这种情况下,我无法处理嵌套数组。映射不适用于“date”,“event_list”应该在字典中,并且所有字典都应该在数组“事件”中 注意:我已经为响应中的所有键定义了常量,例如。 kEventId,kAlready_attending等 Appdelegate.m

RKObjectMapping * eventRequestMapping = [Event defineRequestMapping];

RKObjectMapping * eventDateMapping = [EventDate defineRequestMapping]; RKResponseDescriptor * eventsResponseDescriptor = [RKResponseDescriptor                                                       responseDescriptorWithMapping:eventDateMapping                                                       方法:RKRequestMethodGET                                                       pathPattern:@“/ api / v1 / users / events.json”                                                       的keyPath:@ “事件”                                                       statusCodes:[NSIndexSet indexSetWithIndex:200]];

[[RKObjectManager sharedManager] addResponseDescriptor:eventsResponseDescriptor];

Event.m +(RKObjectMapping *)defineRequestMapping {     RKObjectMapping * mapping = [RKObjectMapping mappingForClass:[self class]];

[mapping addAttributeMappingsFromDictionary:@{
                                              kEventId: @"eventId",
                                              kAlready_attending: @"hasJoined",
                                              kIsLimited: @"isLimited",
                                              kIsPrivateCommunityEvent: @"isPrivateCommunityEvent",
                                              kEventName: @"eventName",
                                              kPicture: @"eventImageURLString",
                                              kDescription: @"eventDescription",
                                              kEventStartDate: @"startDate",
                                              kAttending: @"attending",
                                              kEventEndDate : @"endDate"
                                              }];

RKObjectMapping *locationRequestMapping = [Location defineRequestMapping];
[mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"venue" toKeyPath:@"address" withMapping:locationRequestMapping]];
return mapping;

}

EventDate.m +(RKObjectMapping *)defineRequestMapping {

RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[self class]];

[mapping addAttributeMappingsFromDictionary:@{
                                              KDate : @"date",
                                              }];

 RKObjectMapping *eventRequestMapping = [Event defineRequestMapping];
[mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"" toKeyPath:@"event_list" withMapping:eventRequestMapping]];
return mapping;

}

0 个答案:

没有答案