¿Cómo devuelvo una variable de un bloque dentro de un método?

Digamos que tengo este método que dado una URL devuelve un UIImage:

- (void)getUIImageFromURL:(NSURL *)URL {
    NSURLRequest *request = [NSURLRequest requestWithURL:URL];
    AFHTTPRequestOperation *imageOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    imageOperation.responseSerializer = [AFImageResponseSerializer serializer];

    [imageOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        return (UIImage *)responseObject;
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    }];

    [imageOperation start];
}

Pero me sigue dando este error:

Tipos de punteros de bloque incompatibles que envían 'UIImage * (^) (AFHTTPRequestOperation * __ strong, _ID fuerte) 'al parámetro de tipo' void (^) (AFHTTPRequestOperation *_strong, __strong id) '

Soy algo nuevo en los bloques, así que quizás me estoy acercando a esto completamente hacia atrás. ¿Cómo mejor implementaría un método como este?