Cómo usar el parámetro Progress en AFNetworking 2.0

Estoy intentando utilizar AFNetworking 2.0 con NSURLSession. Estoy usando el método

- (NSURLSessionUploadTask *)uploadTaskWithRequest:(NSURLRequest *)request fromFile:(NSURL *)fileURL progress:(NSProgress * __autoreleasing *)progress completionHandler:(void (^)(NSURLResponse *response, id responseObject, NSError *error))completionHandler; 

¿Cómo se supone que debo usar el parámetro de progreso? El método es un método no bloqueador. Por lo tanto, tendré que escuchar el " progress " para get las actualizaciones. Pero el parámetro no tomaría una propiedad. Solo toma una variable local (NSProgress * __autoreleasing *). No puedo agregar KVO a una var local.

No estoy realmente seguro de cómo usar.

Cada vez que se da un argumento como ** significa que se supone que debe pasar el puntero al puntero a un object existente, no a un puntero al object real como lo haría normalmente.

En este caso, pasa un puntero a un puntero a un object NSProgress y luego observa los cambios en ese object para get las actualizaciones.

Ejemplo:

 // Create a progress object and pass it in NSProgress *progress; [sessionManager uploadTaskWithRequest:request fromFile:fileURL progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { // Completion code }]; // Observe fractionCompleted using KVO [progress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL]; 

Luego se reporta en:

 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; if ([keyPath isEqualToString:@"fractionCompleted"] && [object isKindOfClass:[NSProgress class]]) { NSProgress *progress = (NSProgress *)object; NSLog(@"Progress is %f", progress.fractionCompleted); } }