- @propery(copy, nonatomic) void( ^ updateStatus)(NSString * , NSString * );  
 
     - self.updateStatus(@“papa”, @“Mamma”);  
 
     - __weak HelloViewController * weakSelf = self;  
 
     - XmppPresence * persence = [  
 
     -     [xmppresence alloc] init];  
 
     - presence.updateStatus = ^ (NSString * phone, NSString * status) {  
 
     -     weakSelf.friendUserName = phone;  
 
     - };  
 
     - int( ^ howMany)(int, int) = ^ (int a, int b) {  
 
     -     return a + b;  
 
     - };  
 
     - void( ^ justAMessage)(NSString * ) = ^ (NSString * message) {  
 
     -     NSLog(@  
 
     -     "%@", message);  
 
     - };  
 
     - void( ^ xyz)(void);  
 
     - xyz = ^ (void) {  
 
     -     NSLog(@  
 
     -     "What's up, Doc?");  
 
     - };@interface ViewController()@property(nonatomic, strong) NSString * ( ^ blockAsAMemberVar)(void);@end  
 
     - on didload.._blockAsAMemberVar = ^ (void) {  
 
     -     return@  
 
     -     "This block is declared as a member variable!";  
 
     - };  
 
     - int factor = 5;  
 
     - int( ^ newResult)(void) = ^ (void) {  
 
     -     return factor * 10;  
 
     - };  
 
     - NSLog(@  
 
     - "%d", newResult());  
 
     - NSDate * ( ^ today)(void);  
 
     - today = ^ (void) {  
 
     -     return [NSDate date];  
 
     - };  
 
     - NSLog(@  
 
     - "%@", today());  
 
     - float results = ^ (float value1, float value2, float value3) {  
 
     -     return value1 * value2 * value3;  
 
     - }(1.2, 3.4, 5.6);  
 
     - NSLog(@  
 
     - "%f", results);  
 
 
A completion handler is the way (technique) for implementing callback functionality using blocks.
When showing a modal view controller, if you want to handle something after the view controller has been presented: 
     - - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);  
 
     -   
 
     -   
 
     - [self presentViewController:viewController animated:YES completion:^{  
 
     -   
 
     -    NSLog(@"View Controller was presented...");  
 
     -   
 
     -   
 
     -   
 
     - }];  
 
 
Self method. 
     - - (void)viewDidLoad    
 
     - {  
 
     -   
 
     -    [self addNumber:5 withNumber:7 andCompletionHandler:^(int result) {  
 
     -   
 
     -   
 
     -   
 
     -       NSLog(@"The result is %d", result);  
 
     -   
 
     -    }];  
 
     -   
 
     - }  
 
     -   
 
     - -(void)addNumber:(int)number1 withNumber:(int)number2 andCompletionHandler:(void (^)(int result))completionHandler{  
 
     -   
 
     -    int result = number1 + number2;    
 
     -    completionHandler(result);    
 
     - }