Objective-C For Dummies
When you write an Objective-C program for your iPhone or Mac OS X
apps, all you are doing is providing a set of instructions for the
computer to follow. Fundamentally, programs manipulate numbers
and text, and all things considered, a computer program has only two
parts: variables (and other structures), which "hold" the data, and
instructions, which perform operations on that data.
Making an Objective-C Statement
Programming iPhone and Mac apps in Objective-C is about making a
statement. You can recognize a statement in Objective-C immediately
by noting the semicolon at the end:
statement;
You will see other lines of code, but unless the line ends with a
semicolon, it is not an Objective-C statement.
Objective-C Built-in Data Types and New Data Types
The variables you declare in Objective-C, Objective-C data types, must
be a type that the compiler can recognize. Objective-C comes with a
number of built-in data types, as well as mechanisms to create new
ones, for programming your iPhone or Mac OS X applications.
Built-In Types
Type
Description
Size
char
A character
1
byte
int
An integer a whole number
4
bytes
float
Single precision floating point
number
4
bytes
Double
Double precision floating point
number
8
bytes
short
A short integer
2
bytes
long
A double short
4
bytes
long
A double long
long
BOOL
bytes
Boolean (signed char)
1
byte
Enumeration types
enumtypeName{identifier1,...identifiern};
Identifiers are of constants of type int.
typedef
typedeftypeNameidentifier;
Associates an identifier with a specific type.
Constants
consttypeidentifier=value;
#defineidentifiervalue
Allows you to define names for constants.
Objective-C Operators
Objective-C operators, like those in other programming languages, let
you perform operations on variables (hence the name). Objective-C
provides many operators, and keeping track of all of them can be
difficult as you program your iPhone or Mac OS X apps. Use the
following tables to jog your memory as to which operator accomplishes
what task.
Arithmetic Operators
Operat
or
What It
Does
Addition
Subtraction
Multiplicatio
n
Division
Modulo
Relational and Equality Operators
Operat
or
What It Does
==
Equal to
!=
Not equal to
>
Greater than
<
Less than
>=
Greater than or equal
to
<=
Less than or equal to
Logical Operators
Operat
or
What It
Does
NOT
&&
Logical AND
||
Logical OR
Compound Assignment Operators
Operat
or
What It Does
+=
Addition
-=
Subtraction
*=
Multiplication
\/=
Division
\%=
Modulo
&=
Bitwise AND
|=
Bitwise Inclusive
OR
^=
Exclusive OR
<<=
Shift Left
>>=
Shift Right
Increment and Decrement Operators
Operat
or
What It Does
++
Addition
--
Subtraction
*=
Multiplication
/=
Division
%=
Modulo
&=
Bitwise AND
|=
Bitwise Inclusive
OR
^=
Exclusive OR
<<=
Shift Left
>>=
Shift Right
Bitwise Operators
Operator
What It Does
&
Bitwise AND
Bitwise Inclusive OR
Exclusive OR
Unary complement (bit
inversion)
<<
Shift Left
>>
Shift Right
Other operators
Operat
or
What It
Does
()
Cast
Comma
Sizeof()
Size of
?:
Conditional
&
Address
Indirection
Control Statements and Loops in Objective-C
In programming, as in life, you have to make decisions and act on
them. Objective-C provides control statements and loops to help your
program take action. You may want to repeat a set of instructions based
on some condition or state, for example, or even change the program
execution sequence. Here is the basic syntax for Objective-C control
statements and loops.
if else
if(condition){
statement(s)iftheconditionistrue;
}
else{
statement(s)iftheconditionisnottrue;
}
for
for(counter;condition;updatecounter){
statement(s)toexecutewhiletheconditionis
true;
}
for in
for(TypenewVariableinexpression){
statement(s);
}
or
TypeexistingVariable;
for(existingVariableinexpression){
statement(s);
}
Expression is an object that conforms to the NSFastEnumeration
protocol.
An NSArray and NSSet enumeration is over content.
An NSDictionary enumeration is over keys.
An NSManagedObjectModel enumeration is over entities.
while
while(condition){
statement(s)toexecutewhiletheconditionis
true
}
do while
do{
statement(s)toexecutewhiletheconditionis
true
}while(condition);
Jump statements
return;
Stop execution and returns to the calling function.
break;
Leave a loop.
continue;
Skip the rest of the loop and start the next iteration.
gotolabelName;
...
labelName:
An absolute jump to another point in the program (dont use it).
exit();
Terminates your program with an exit code.
Declaring Classes and Sending Messages in Objective-C
Object-oriented programming languages enable you to declare classes,
create derived classes (subclass), and send messages to the objects
instantiated from a class. This is the essence of object-oriented
programming and part of the object-oriented extensions that
Objective-C adds to C. To ensure that everything operates smoothly,
compiler directives are available that enable you to inform the compiler
of your classes by using @class and #import.
Interface
#import"Superclass.h"
@interfaceClassName:Superclass{
instancevariabledeclarations;
}
methoddeclarations
@property(attributes)instancevariabledeclaration;
d
Implementation
#import"ClassName.h"
@implementationClassName
@synthesizeinstancevariable;
methoddefinitions
d
Message Syntax
[receivermessage]
#import
#importfilename.h
Guarantees that a header file will be included only once.
@class
@classClassName;
Clues the compiler into user defined types.