ios - RestKit simple JSON, bad pathPAttern? -


jsons:

code:

nsurl *baseurl = [nsurl urlwithstring:@"http://www.krzysztofkurzawa.com"]; rkobjectmanager *objectmanager = [rkobjectmanager managerwithbaseurl:baseurl];  rklogconfigurebyname("restkit/network", rklogleveltrace); rklogconfigurebyname("restkit/objectmapping", rklogleveltrace);  rkobjectmapping *mapping = [rkobjectmapping mappingforclass:[nsmutabledictionary class]]; [mapping addattributemappingsfromarray:@[@"title"]];  rkresponsedescriptor *rk = [rkresponsedescriptor responsedescriptorwithmapping:mapping pathpattern:@"articles" keypath:@"articles" statuscodes:rkstatuscodeindexsetforclass(rkstatuscodeclasssuccessful)]; [objectmanager addresponsedescriptor:rk];  rkobjectmapping *mapping2 = [rkobjectmapping mappingforclass:[nsmutabledictionary class]]; [mapping addattributemappingsfromarray:@[@"title"]];  rkresponsedescriptor *rk2 = [rkresponsedescriptor responsedescriptorwithmapping:mapping2 pathpattern:@"articles/:id" keypath:nil statuscodes:rkstatuscodeindexsetforclass(rkstatuscodeclasssuccessful)]; [objectmanager addresponsedescriptor:rk2];   [[rkobjectmanager sharedmanager] getobjectsatpath:@"articles" parameters:nil success:^(rkobjectrequestoperation *operation, rkmappingresult *mappingresult) {     nslog(@"%@", [mappingresult firstobject]); } failure:^(rkobjectrequestoperation *operation, nserror *error) {  }];  [[rkobjectmanager sharedmanager] getobjectsatpath:@"articles/1" parameters:nil success:^(rkobjectrequestoperation *operation, rkmappingresult *mappingresult) {     nslog(@"%@", [mappingresult firstobject]); } failure:^(rkobjectrequestoperation *operation, nserror *error) {  }]; 

error: no mappable object representations found @ key paths searched.", keypath=null, nslocalizeddescription=no response descriptors match response loaded.}

i haven't got ideas. first mapping works, when pathpattern set nil. why must nil? maybe needed creating rest path patterns.

your paths not correct, also, when running code had use method:

+ (instancetype)responsedescriptorwithmapping:(rkmapping *)mapping                                        method:(rkrequestmethod)method                                   pathpattern:(nsstring *)pathpattern                                       keypath:(nsstring *)keypath                                   statuscodes:(nsindexset *)statuscodes 

the 1 using says it's deprecated. guess might using old version of restkit.

here code works:

nsurl *baseurl = [nsurl urlwithstring:@"http://www.krzysztofkurzawa.com"]; rkobjectmanager *objectmanager = [rkobjectmanager managerwithbaseurl:baseurl];  rklogconfigurebyname("restkit/network", rklogleveltrace); rklogconfigurebyname("restkit/objectmapping", rklogleveltrace);  rkobjectmapping *mapping = [rkobjectmapping mappingforclass:[nsmutabledictionary class]]; [mapping addattributemappingsfromarray:@[@"title"]];  rkresponsedescriptor *rk = [rkresponsedescriptor responsedescriptorwithmapping:mapping method:rkrequestmethodget pathpattern:@"/articles/" keypath:@"articles" statuscodes:rkstatuscodeindexsetforclass(rkstatuscodeclasssuccessful)]; [objectmanager addresponsedescriptor:rk];  rkobjectmapping *mapping2 = [rkobjectmapping mappingforclass:[nsmutabledictionary class]]; [mapping2 addattributemappingsfromarray:@[@"title"]];  rkresponsedescriptor *rk2 = [rkresponsedescriptor responsedescriptorwithmapping:mapping2  method:rkrequestmethodget pathpattern:@"/articles/:id/" keypath:nil statuscodes:rkstatuscodeindexsetforclass(rkstatuscodeclasssuccessful)]; [objectmanager addresponsedescriptor:rk2];   [[rkobjectmanager sharedmanager] getobjectsatpath:@"/articles/" parameters:nil success:^(rkobjectrequestoperation *operation, rkmappingresult *mappingresult) {     nslog(@"%@", [mappingresult firstobject]); } failure:^(rkobjectrequestoperation *operation, nserror *error) {  }];  [[rkobjectmanager sharedmanager] getobjectsatpath:@"/articles/1/" parameters:nil success:^(rkobjectrequestoperation *operation, rkmappingresult *mappingresult) {     nslog(@"%@", [mappingresult firstobject]); } failure:^(rkobjectrequestoperation *operation, nserror *error) {  }]; 

Comments