Objects
The base unit of activity in all object-oriented languages is the
object—
an
entity that associates data with operations that can be performed on
that data. Objective-C provides a distinct data type,
id, defined as a pointer
to an object’s data that allows you to work with
objects. An object may be declared in code as follows:
id anObject;
For all object-oriented constructs of Objective-C, including method
return values, id replaces the default C
int as the default return data type.
Dynamic Typing
The id type is completely nonrestrictive. It says
very little about an object, indicating only that it is an entity in
the system that can respond to messages and be queried for its
behavior. This type of behavior, known as dynamic
typing
, allows the system to find the class to
which the object belongs and resolve messages into method calls.
Static Typing
Objective-C also supports static
typing
, in which you declare a variable using
a pointer to its class type instead of id, for
example:
NSObject *object;
This declaration will turn on some degree of compile time checking to
generate warnings when a type mismatch is made, as well as when you
use methods not implemented by a class. Static typing can also
clarify your intentions to other developers who have access to your
source code. However, unlike other languages’ use of
the term, static typing in Objective-C is used only at compile time.
At runtime, all objects are treated as type id to
preserve dynamism in the system.
Tip
There are ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access