2017-08-30 59 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顯然如此,是的。這當然不會讓我更接近解決方案! –

相關問題