IMO, what you want to archive is not the best practice. I think the tidiest way in this case is using block as a completion hander. It will look like this
@implementation YourController
-(void)updateLocationAndDoSomething
{
[Utilities startUpdateLocationWithCompletionHandler: ^ (CLLocationCoordinate2D location, BOOL *successed){
//your custom code here
}];
}
@end
here is a easy to understand tutorial about block http://www.appcoda.com/objective-c-blocks-tutorial/ in case you don't know how to
Second way, using delegation
, your controller will look like this
@implementation YourController
-(void)gotLocationAndDoSomething:(CLLocationCoordinate2D) location
{
//your custom code here
}
-(void)failedToGetLocation
{
}
@end
If you try to place them all into one Utility class, maybe it's possible in some cases, but it will get ugly very soon and hard to maintain.