Advertisement
Online Test Banks
Score higher
See Online Test Banks
eLearning
Learning anything is easy
Browse Online Courses
Mobile Apps
Learning on the go
Explore Mobile Apps
Dummies Store
Shop for books and more
Start Shopping

Using Block Objects in iPhone and iPad Game Development

Part of the iPhone and iPad Game Development For Dummies Cheat Sheet

Blocks are an extension of the C language and are fully supported by Objective-C, the underlying programming language for all things Mac. In the new iOS 4, blocks are used more and more instead of (or to replace)

  • Delegates and delegate methods

  • Callback functions

  • Completion handlers for one-time operations

  • Other enumeration techniques

  • Asynchronous tasks that need performed

With iOS 4, the following methods and functions of the system frameworks take blocks as parameters:

  • Completion handlers

  • Notif handlers

  • Enumeration

  • View animation and transitions

  • Sorting

Blocks can be declared as variables, but you can also write a block literal inline where it's required as an argument.

To declare a block variable:

  1. Use the ^ operator with the name of the variable.

    For example, to declare a block variable that returns void and takes an NSNotification * as its single argument, do the following:

    void (^keyBoardWillShow) (NSNotification *)
  2. Just as with any other variable declaration (such as int i = 1), follow the equals sign with its definition.

    You do that by using the ^ operator again to indicate the beginning of the block literal — the definition assigned to the block variable. The block literal includes argument names as well as the body (or code) of the block. For example, to inform the compiler that the name of the argument is notif, do the following

    = ^(NSNotification * notif) { code 

    And then end the block literal with the usual

    };
  3. Use the block variable, as you would any other variable, as an argument in a message:

    usingBlock:keyBoardWillShow

    To write a block literal inline, use the ^ operator to indicate the beginning of the block literal — the definition assigned to the block variable. The block literal includes argument names as well as the body (code) of the block.

    For example, to write a block literal inline where it's required as an argument for usingBlock, do the following:

      usingBlock:^(NSNotification * notif) { code 

    And then end the block literal with the usual (no semicolon is needed because it is being used as an argument within a message)

}
blog comments powered by Disqus
Advertisement
Advertisement

Inside Dummies.com

Dummies.com Sweepstakes

Win an iPad Mini. Enter to win now!