Ios RestKit:“;multipartFormRequestWithObject“;仅发送附件,对象属性丢失
我需要发布一个带有图像的Realty对象:Ios RestKit:“;multipartFormRequestWithObject“;仅发送附件,对象属性丢失,ios,restkit,Ios,Restkit,我需要发布一个带有图像的Realty对象: -(void) addRealty:(Realty*)realty withImages:(NSDictionary*)images success:(void (^)(Realty *))callback failure:(void(^)(void))failure { UIImage *image = [UIImage imageNamed:@"test.png"]; NSMutableURLRequest *request = [_
-(void) addRealty:(Realty*)realty withImages:(NSDictionary*)images success:(void (^)(Realty *))callback failure:(void(^)(void))failure
{
UIImage *image = [UIImage imageNamed:@"test.png"];
NSMutableURLRequest *request = [_httpClient multipartFormRequestWithObject:realty method:RKRequestMethodPOST path:@"/realties.json" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:UIImagePNGRepresentation(image)
name:@"_realty[images][0]"
fileName:@"test.png"
mimeType:@"image/png"];
}];
RKObjectRequestOperation *operation = [_httpClient objectRequestOperationWithRequest:request success:nil failure:nil];
[_httpClient enqueueObjectRequestOperation:operation];
}
}
您必须为Realty添加RKRequestDescriptor对象
RKObjectMapping* realtyMapping = <...>;
RKRequestDescriptor* reqDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:realtyMapping
objectClass:[Realty class]
rootKeyPath:nil
method:RKRequestMethodAny];
[[RKObjectManager sharedManager] addRequestDescriptor:reqDescriptor];
RKObjectMapping*realtyMapping=;
RKRequestDescriptor*reqDescriptor=[RKRequestDescriptor RequestDescriptor WithMapping:realtyMapping
objectClass:[不动产类]
rootKeyPath:nil
方法:RKRequestMethodAny];
[[RKObjectManager sharedManager]addRequestDescriptor:reqDescriptor];
祝您好运:)您可能需要使用
[realtyMapping inverseMapping]
RKObjectMapping *realtyMapping = [RKObjectMapping mappingForClass:[Realty class]];
[realtyMapping addAttributeMappingsFromArray: @[@"_id",@"user_id",@"description",@"notes",@"address",@"coords",@"pictures",@"area",@"rtype",@"rooms",@"price",@"price_m",@"title"]];
// - multiple
RKResponseDescriptor *realtiesDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:realtyMapping method:RKRequestMethodAny pathPattern:nil keyPath:@"realties" statusCodes:statusCodes];
[_httpClient addResponseDescriptor:realtiesDescriptor];
// - single
RKResponseDescriptor *realtySingleDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:realtyMapping method:RKRequestMethodAny pathPattern:nil keyPath:@"realty" statusCodes:statusCodes];
[_httpClient addResponseDescriptor:realtySingleDescriptor];
RKObjectMapping* realtyMapping = <...>;
RKRequestDescriptor* reqDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:realtyMapping
objectClass:[Realty class]
rootKeyPath:nil
method:RKRequestMethodAny];
[[RKObjectManager sharedManager] addRequestDescriptor:reqDescriptor];