0

私のviewControllerには、UIImagePickerControllerを介して画像が選択された後に呼び出される次のメソッドがあります。選択した画像を Web サービスにアップロードしたいのですが、RestKit が提供するサンプルに従おうとすると、次のエラーが発生します。

「RKObjectManager」の目に見える @interface はセレクター「multipartFormRequestForObject:method:path:parameters:constructingBodyWithBlock:」を宣言しません

最新バージョンのレストキットを使用しています。右クリックして定義に移動し、正しいと思われる署名を確認しました。

AFMultipartFormData が XCode で強調表示されていないことに注意してください。#import AFNetworking/AFHTTPClient.h をインクルードしようとしましたが、それでもプレーン テキストとして表示されます。これが問題ではないでしょうか?

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [imageView setImage:image];

    ImageRecord *imageRecord = [ImageRecord new];
    NSDictionary *params = @{@"param1" : @"value1",
                             @"param2" : @"value2",
                             @"param3" : @"value3"};

    // Serialize the Article attributes then attach a file
    NSMutableURLRequest *request = [[RKObjectManager sharedManager] multipartFormRequestForObject:imageRecord method:RKRequestMethodPOST path:@"stuff" parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [formData appendPartWithFileData:UIImagePNGRepresentation(image)
                                    name:@"article[image]"
                                fileName:@"photo.png"
                                mimeType:@"image/png"];
    }];

    RKObjectRequestOperation *operation = [[RKObjectManager sharedManager] objectRequestOperationWithRequest:request success:nil failure:nil];
    [[RKObjectManager sharedManager] enqueueObjectRequestOperation:operation]; // NOTE: Must be enqueued rather than started


    [self dismissViewControllerAnimated:YES completion:NULL];
}

ご指摘ありがとうございます。

4

1 に答える 1