Sube una imagen con AFNetworking 2.0

No puedo entender por qué esto es tan difícil. Todos los tutoriales y artículos en línea parecen estar hablando de la API 1.0, que es bastante inútil.

He intentado de varias maneras diferentes y obtener diferentes resultados. ¿Qué estoy haciendo mal?

tarea de carga: esto parece no estar utilizando un formulario de varias partes, wtf?

NSMutableURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST"
                                                                                  URLString:[[NSURL URLWithString:url relativeToURL:[NSURL URLWithString:ApiBaseUrl]] absoluteString]
                                                                                 parameters:@{}
                                                                  constructingBodyWithBlock:nil];

NSProgress *progress;
NSURLSessionUploadTask *task = [self.manager uploadTaskWithRequest:request
                                                        fromData:data
                                                        progress:&progress
                                               completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
                                                 if (error) {
                                                   NSLog(@"[error description] = %@", [error description]);
                                                 } else {
                                                   NSLog(@"success!");
                                                 }
                                               }];

[task resume];

Publicar con un bloque - esto parece no adjuntar nada

[self.manager POST:url
           parameters:@{}
constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
    [formData appendPartWithFileData:data
                                name:@"post[picture]"
                            fileName:@"picture.jpg"
                            mimeType:@"image/jpeg"];
}
              success:^(NSURLSessionDataTask *task, id response) {
                NSLog(@"Success");
              }
              failure:^(NSURLSessionDataTask *task, NSError *error) {
                NSLog(@"Error: %@", error);
              }];

post simple - esto parece funcionar casi ... pero no

[self.manager POST:url
        parameters:@{@"post[picture][]":data}
           success:^(NSURLSessionDataTask *task, id response) {
             NSLog(@"Success");
           }
           failure:^(NSURLSessionDataTask *task, NSError *error) {
             NSLog(@"Error: %@", error);
           }];

Me encantaría trabajar, pero no estoy seguro de por qué no funciona.

Respuestas a la pregunta(2)

Su respuesta a la pregunta