a date value of 1435819788000 converted restkit 47469-04-26 14:00:00 +0000. guess problem difference between java's date representation uses milliseconds , unix's date representation uses seconds. think need set converter. how can that? (i see rk transformers on github don't know how use them or find appropriate transformer.)
edit: code rest call
nsurl *baseurl = [nsurl urlwithstring:@"some url"]; nsurlrequest *request = [nsurlrequest requestwithurl:baseurl]; rkobjectmapping *mapping = [rkobjectmapping mappingforclass:[price class]]; [mapping addattributemappingsfromdictionary:@{@"id": @"ron95", @"ron95": @"ron92", @"dieselnormal": @"dieselnormal", @"dieselspecial": @"dieselspecial", @"postdate": @"postdate"}]; rkresponsedescriptor *responsedescriptor = [rkresponsedescriptor responsedescriptorwithmapping:mapping method:rkrequestmethodget pathpattern:nil keypath:nil statuscodes:rkstatuscodeindexsetforclass(rkstatuscodeclasssuccessful)]; rkobjectrequestoperation *objectrequestoperation = [[rkobjectrequestoperation alloc] initwithrequest:request responsedescriptors:@[ responsedescriptor ]]; [objectrequestoperation setcompletionblockwithsuccess:^(rkobjectrequestoperation *operation, rkmappingresult *mappingresult) { nsarray *prices = [mappingresult array]; edit: think have working now. following how it.
rkobjectmapping *mapping = [rkobjectmapping mappingforclass:[price class]]; [mapping addattributemappingsfromdictionary:@{@"id": @"ron95", @"ron95": @"ron92", @"dieselnormal": @"dieselnormal", @"dieselspecial": @"dieselspecial"}]; rkblockvaluetransformer *numbertodatevaluetransformer = [rkblockvaluetransformer valuetransformerwithvalidationblock:^bool(__unsafe_unretained class sourceclass, __unsafe_unretained class destinationclass) { // transformer handles `nsnumber` <-> `nsdate` transformations return (([sourceclass issubclassofclass:[nsnumber class]] && [destinationclass issubclassofclass:[nsdate class]]) || ([sourceclass issubclassofclass:[nsdate class]] && [destinationclass issubclassofclass:[nsnumber class]])); } transformationblock:^bool(id inputvalue, __autoreleasing id *outputvalue, __unsafe_unretained class outputvalueclass, nserror *__autoreleasing *error) { rkvaluetransformertestinputvalueiskindofclass(inputvalue, (@[ [nsnumber class], [nsdate class] ]), error); rkvaluetransformertestoutputvalueclassissubclassofclass(outputvalueclass, (@[ [nsnumber class], [nsdate class] ]), error); if ([outputvalueclass issubclassofclass:[nsdate class]]) { if ([inputvalue iskindofclass:[nsnumber class]]) { *outputvalue = [nsdate datewithtimeintervalsince1970:[inputvalue doublevalue] / 1000]; } } else if ([outputvalueclass issubclassofclass:[nsnumber class]]) { *outputvalue = @([inputvalue timeintervalsince1970]); } return yes; }]; rkattributemapping *postdatemapping = [rkattributemapping attributemappingfromkeypath:@"postdate" tokeypath:@"postdate"]; postdatemapping.valuetransformer = numbertodatevaluetransformer; [mapping addpropertymapping:postdatemapping];
Comments
Post a Comment