gpt4 book ai didi

ios - RestKit: "multipartFormRequestWithObject"仅发送附件,对象属性丢失

转载 作者:行者123 更新时间:2023-11-28 22:13:02 24 4
gpt4 key购买 nike

我需要发布一个带有图像的 Realty 对象:

-(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”字段只有图像,没有其他属性(价格、面积等):

{"_realty"=>{"images"=>{"0"=>#<ActionDispatch::Http::UploadedFile:0x00000005817f40 @original_filename="test.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"_realty[images][0]\"; filename=\"test.png\"\r\nContent-Type: image/png\r\n", @tempfile=#<File:/tmp/RackMultipart20140315-28741-1yvodfr>>}}}

房地产映射:

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];

最佳答案

您必须为 Realty 添加 RKRequestDescriptor 对象。

RKObjectMapping* realtyMapping = <...>;
RKRequestDescriptor* reqDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:realtyMapping
objectClass:[Realty class]
rootKeyPath:nil
method:RKRequestMethodAny];
[[RKObjectManager sharedManager] addRequestDescriptor:reqDescriptor];

祝你好运:)

关于ios - RestKit: "multipartFormRequestWithObject"仅发送附件,对象属性丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22420426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com