2017-08-30 56 views
0

我使用下面的执行patchObject呼叫,基于实例(也有极少数),我发现:RestKit 0.20 - 使用patchObject并传递图像附件

[[RKObjectManager sharedManager] patchObject:user path:@"profile" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *result) { 

    // saving data locally and continuing...  

} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    NSLog(@"Failed with error: %@", [error localizedDescription]); 
}]; 

...但我也需要传递一张图片。添加图像参数的通常的方法是将它添加到一个请求,然后分配该给操作中使用的,即:

request = [[RKObjectManager sharedManager] multipartFormRequestWithObject:user 
                     method:RKRequestMethodPOST 
                     path:@"profile" 
                    parameters:nil 
                constructingBodyWithBlock:^(id<AFRKMultipartFormData> formData) { 
                 [formData appendPartWithFileData:UIImagePNGRepresentation(self.photoImageView.image) 
                        name:@"user[avatar]" 
                       fileName:@"photo.png" 
                       mimeType:@"image/png"]; 
                }]; 
RKManagedObjectRequestOperation *operation = [[RKManagedObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[responseDescriptor, errorDescriptor]]; 
operation.managedObjectContext = [RKManagedObjectStore defaultStore].mainQueueManagedObjectContext; 
operation.managedObjectCache = [RKManagedObjectStore defaultStore].managedObjectCache; 
// etc... 

作为patchObject方法不给我来定义操作的能力(或者,因此,请求)被使用,我看不到我可以如何将图像数据添加到API调用。

先前可用的方法允许在执行patchObject时在块中定义图像,但似乎不再存在于RestKit中。

有什么想法?我会很感激有关如何做到这一点的任何提示!

在此先感谢。

回答

-1
+(void)postMutliPartData : (NSString *)urlStr : (NSDictionary *)parameters : (NSData *)data : (void(^)(NSDictionary * response_success))success : (void(^)(NSError * response_error))failure { 
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", nil]; 
[manager POST:urlStr parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 
{ 
    [formData appendPartWithFileData: data name:@"image" fileName:@"temp.jpeg" mimeType:@"image/jpeg"]; 

} progress:nil success:^(NSURLSessionTask *task, id responseObject) { 

    NSLog(@"%@",responseObject); 
     success(responseObject); 

} failure:^(NSURLSessionTask *operation, NSError *error) { 
    failure(error); 
}];  
} 
+0

谢谢,但我看不出这是有关在RestKit使用patchObject ... –

+0

@RobertTurrall:看好拉雅其他的答案,似乎,仿佛他只是抛出的任何问题随机答案。 – vikingosegundo

+0

@vikingosegundo显然如此,是的。这当然不会让我更接近解决方案! –

相关问题