O'Reilly logo

Objective-C Pocket Reference by Andrew Duncan

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Compiler and Preprocessor Directives

Compiler and preprocessor directives are special terms in your program that tell the compiler to perform some Objective-C-specific action. All compiler directives start with the character @, and preprocessor directives start with #.

Class Declarations and Definitions

The following compiler directives are used to begin or conclude the declaration and definition of Objective-C classes, categories, and protocols:

@interface

Begins the declaration of a class's or category's fields and methods.

@protocol

Begins the declaration of a protocol's methods.

@implementation

Begins the definition of a class's methods.

@end

Ends the declaration or definition of a class's, category's, or protocol's methods.

The use of these compiler directives is described in detail under Section 1.3, and especially in the subsections Section 1.3.2, Section 1.3.6, and Section 1.3.7.

Forward Declarations

The following compiler directives generate forward declarations, informing the compiler that a type exists:

@class ClassName

Forward declaration of a class.

@protocol ProtocolName

Forward declaration of a protocol.

Use forward declarations when an interface uses variables (fields or method parameters or return types) of a given type. Rather than import the header file for that type, you can simply forward reference it. For example:

@class 
               Point;
@interface 
               Circle : Graphic {
  Point* center;
  // etc.
}
@end

This is sufficient because the declaration of Circle does not use any details ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required