2011-10-04 82 views

回答

5

我想出了一個解決方案

- (NSString*)description 
{ 
    RKObjectMappingProvider * provider = [RKObjectManager sharedManager].mappingProvider; 
    RKObjectMapping* mapping = [provider objectMappingForClass:[self class]]; 
    RKObjectSerializer * serializer = [RKObjectSerializer serializerWithObject:self mapping:mapping]; 

    NSError * error; 
    return (NSString *)[serializer serializedObjectForMIMEType:RKMIMETypeJSON error: &error]; 
} 
6

對象映射現在已經在RESKIT的新版本大幅改變RestKit ObjectMapping 2.0,並@ bradgonesurfing的答案不會在這些較新的版本。

現在,您需要使用RKObjectParameterization執行對象序列如下:

RKObjectMapping *itemMapping = [RKObjectMaping mappingForClass:[Item class]]; 
/* Your object mapping definition for the Item class goes here */ 

RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:itemMapping.inverseMapping objectClass:[Item class] rootKeyPath:nil method:RKRequestMethodPOST]; 

NSDictionary *dict = [RKObjectParameterization parametersWithObject:item requestDescriptor:requestDescriptor error:nil]; 
NSData *jsonData = [RKMIMETypeSerialization dataFromObject:dict MIMEType:RKMIMETypeJSON error:nil]; 
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];