Using a webservice with blocks and returning data via callback
Here is a way how I do it:

Create a class and name it like ClientApi. This class should be a singleton link and be absolutely independent. Also, create a class APIRouter which will return a path for a request. I'm using the AFNetworking framework for communication with different API etc. and JSONModel framework for mapping. Here you can find the full answer about network architecture in iOS apps.

@interface SFAPIClient ()

@property (nonatomic, strong) AFHTTPSessionManager *manager;

@end

@implementation SFAPIClient

+ (instancetype)sharedInstance
{
    static id _sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&amp;onceToken, ^{
        _sharedInstance = [[[self class] alloc] init];
    });

    return _sharedInstance;
}


If a request should return some data, pass block as a parameter to the method:

- (void)getAllChildsWithCompletion:(void(^)(NSArray *arr, NSError *error))completion
{
    NSString *url = [SFAPIRouter childRoute];
    [self setupRequestSerializer];

    [self.manager GET:url parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSError *error = nil;
        NSArray *arr = //map respons

        if (!error)//if everything good call block with data 
            completion(arr, nil);
        else
            completion(nil, error);


    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)
     {
        if (completion)
            completion(nil, error);
    }];
}


APIRouter:

static NSString * const kSFServerURL = @"http://0.0.0.0/api/v1";

@implementation SFAPIRouter

+ (NSString *)saveMediaToListRoute
{
    return [kSFServerURL stringByAppendingString:@"/childs"];
}


And then in controller call function from your ClientApi class:

//show activity indicator
[[SFAPIClient sharedInstance] getAllChildsWithCompletion:^(NSArray *arr, NSError *error){
//stop showing activity indicator

if (error)
{
//show alert
return;
}
//do what you need
}];