Functions

In Chapter 6 you were introduced to Objective-C methods and how they differed from JavaScript functions. Now I get to blow your mind by showing you C functions, which look and work a lot like JavaScript functions—except for the mandatory return type and data typing of parameter variables. As with an Objective-C method, a C function is not obligated to return a value, but its definition should specify a return type (not in parentheses), even if it is void.

Arguments, if any, are grouped within parentheses and comma-separated (just like JavaScript) and must also specify data types. Prototypes for three styles follow:

void functionName() {
    // statements
    ...
}
void functionName(arg1Type arg1Value) {
    // statements
    ...
}
returnType functionName(arg1Type arg1Value, arg2Type arg2Value) {
    // statements
    ...
    return returnValue;
}

It wouldn’t surprise me if a lot of newcomers to iOS programming come to this discussion and throw their hands up in the air, wondering why there simply can’t be one C or Objective-C style of function/method and be done with it.

You can take comfort in knowing that you will rarely need to generate your own C-style functions. You’ll be creating most of your custom action code in the form of Objective-C methods. Your need to know about C functions is predominantly to know how to use those parts of the Cocoa Touch frameworks that have not been modernized to Objective-C (and may never be). You will encounter C constructions in several places within the iOS SDK documentation—notably ...

Get Learning the iOS 4 SDK for JavaScript Programmers 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.