Hacer una publicación en la API con RKParams y mapear la respuesta con RKObjectMapping usando RestKit

Ahora mismo estoy haciendo un gran refactorio a mi código y quiero unificar la forma en que estoy usando Restkit. Tenía formas separadas de hacer llamadas RPC a mi servidor API y llamadas REST.

Las llamadas REST se realizaron utilizando objectMapping y las llamadas RPC se realizaron con el RKClient. Además de eso, estoy usando bloques en lugar de delegados, lo cual es genial, pero tengo algunas dudas sobre cómo funciona.

Aquí está el código que tenía antes, que funcionó muy bien para publicar el objeto y hacer el mapeo manualmente con delegados, y luego está el nuevo código que usa bloques que no envían los parámetros.

//This was the old way...
- (void) upload: (KFMedia *) pic {

    RKParams* imageParams = [RKParams params];
    NSData* imageData = UIImageJPEGRepresentation(pic.image, 0.7f);
    [imageParams setData:imageData MIMEType:@"image/jpg" forParam:@"FileUpload"];

    [[RKClient sharedClient] post:@"/api/upload/" params:imageParams delegate:self]; 

}

//This is the new way I'm trying...
- (void) upload: (KFMedia *) pic onLoad:(RKObjectLoaderDidLoadObjectBlock) loadBlock onError:(RKRequestDidFailLoadWithErrorBlock)failBlock{

    RKParams* imageParams = [RKParams params];
    NSData* imageData = UIImageJPEGRepresentation(pic.image, 0.7f);
    [imageParams setData:imageData MIMEType:@"image/jpg" forParam:@"FileUpload"];

    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/api/upload/" usingBlock:^(RKObjectLoader *loader) {

        //Trying to set params here, but it seems that I'm not sending anything :(
        loader.params = imageParams;
        loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[KFMedia class]];
        loader.delegate = self;
        loader.onDidLoadObject = loadBlock;
        loader.onDidFailWithError = failBlock;
        loader.onDidFailLoadWithError = failBlock;
        loader.onDidLoadResponse = ^(RKResponse *response) {
            [self fireErrorBlock:failBlock onErrorInResponse:response];
        };

    }];

}

La solicitud que estoy enviando tiene su cuerpo vacío, lo que significa que los parámetros no se están enviando o configurando correctamente. ¿Alguna idea sobre cómo hacer que esto funcione?

Respuestas a la pregunta(1)

Su respuesta a la pregunta