5.3. Invoking Block Objects

Problem

You’ve learned how to construct block objects and now you want to execute your block objects to get results.

Solution

Execute your block objects the same way you execute a C function, as shown in the Discussion section.

Discussion

We’ve seen examples of invoking block objects in Recipes 5.1 and 5.2. This section contains more concrete examples.

If you have an independent block object, you can simply invoke it just like you would invoke a C function:

void (^simpleBlock)(NSString *) = ^(NSString  *paramString){
  /* Implement the block object here and use the
   paramString parameter */
};

- (void) callSimpleBlock{

  simpleBlock(@"O'Reilly");

}

If you want to invoke an independent block object within another independent block object, follow the same instructions by invoking the new block object just as you would invoke a C method:

/*************** Definition of first block object ***************/ NSString *(^trimString)(NSString *) = ^(NSString *inputString){ NSString *result = [inputString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; return result; }; /*************** End definition of first block object ***************/ /*************** Definition of second block object ***************/ NSString *(^trimWithOtherBlock)(NSString *) = ^(NSString *inputString){ return trimString(inputString); }; /*************** End definition of second block object ***************/ - (void) callTrimBlock{ NSString *trimmedString = trimWithOtherBlock(@" ...

Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.