I have this code it's a method class in a NSObject sub class.
+ (void)startTaskWithComponents:(NSURLComponents *)components
                     andHandler:(void (^)(NSDictionary* weatherData))handler {
    NSURL *url = components.URL;
    NSURLSession* session = [NSURLSession sharedSession];
    NSURLSessionDataTask* task = [session dataTaskWithURL:url completionHandler:^(NSData*  data, NSURLResponse * response, NSError*  error) {
        //TODO add error handler
        if (!error) {
            NSMutableDictionary *JSONData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
            handler( JSONData );
        }else{
         // I need to show passing the error to the method showAlertToViewController but is inaccesible :( 
        }
    }];
    [task resume];
}
- (void)showAlertToViewController:(UIViewController *) controller withError:(NSError*)error {
    UIAlertController *alert = [UIAlertController
                                alertControllerWithTitle:@"Warning"
                                message:[error localizedDescription]
                                preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *okButton = [UIAlertAction
                               actionWithTitle:@"Ok"
                               style:UIAlertActionStyleDefault
                               handler:nil];
    [alert addAction:okButton];
    [controller presentViewController:alert animated:YES completion:nil];
}
And the problem its when I try to handle the error I have this code to show the error in the ViewController suitable
How can handle this situation to show the alert in the ViewController to the user?
