Con il
quinto capitolo si passa finalmente alla creazione, compilazione ed esecuzione di un progetto, nel caso specifico si tratta di una
command line utility - Foundation tool, e le fasi sono documentate da utilissime schermate, che servono anche per alleggerire la lettura. L'occasione è buona per raccomandare l'uso di nomi brevi e minuscoli per i programmi da linea di comando, e soprattutto per un bel giro guidato di
Xcode. Tra le cose che rimangono per il momento oscure, i parametri della funzione
main, che sono poi i classici
argc e
argv, e il significato di
NSAutoreleasePool e
pool drain, di cui si riparlerà nel quindicesimo capitolo a proposito di gestione della memoria.
Dopo aver visto come far girare un programma con il pulsante
Build and Go dell'IDE, viene introdotto un piccolo errore nel sorgente per mostrare le operazioni di debug, e si osserva come la segnalazione del compilatore non sia del tutto corretta, dal momento che sposta, per così dire, l'errore alla linea di codice successiva. Si passa così alla scrittura e conseguente esecuzione del codice preso dal quarto capitolo, che in pratica serve a calcolare l'area di un cerchio. Una volta fatto girare il programma, è il momento di provare gli strumenti di debug, inserendo qualche breakpoint nel codice e monitorando, dopo l'arresto dell'esecuzione, il valore di alcune variabili. Alla fine del quinto capitolo insomma il lettore dovrebbe essere in grado di scrivere semplici programmi da eseguire a linea di comando, e di potere affinare in proprio la conoscenza del linguaggio.
Con il
sesto capitolo arrivano i costrutti condizionali:
if,
if-else, le comparazioni, con la solita girandola di simboli per eseguire confronti, e gli operatori booleani (
AND,
OR,
NOT) per combinare ed eventualmente nidificare diverse condizioni; il
settimo capitolo riguarda i cicli
for e le istruzioni
while con o senza
do, di cui vengono forniti alcuni esempi comprensivi di talune sottili trappole, che portano a diminuire di uno il valore finale atteso in uscita da un ciclo.
L'
ottavo capitolo, adesso che la conoscenza del linguaggio ha raggiunto un livello accettabile, inizia un argomento completamente nuovo, ossia la programmazione con le interfacce grafiche, partendo dalla caratteristica
objective del linguaggio, che estende in questa direzione il buon vecchio C e che ci permette di pensare in termini di oggetti alle entità che popolano i nostri programmi, le quali sono in grado di rispondere a sollecitazioni come il clic del mouse o il trascinamento. Questo grazie all'uso delle classi, che sono definizioni degli oggetti richiamate ogni qualvolta si crea una finestra, o un pulsante, o qualsiasi altra entità che popola il desktop del computer.
Le istanze di una classe, cioè gli oggetti con cui interagiamo attraverso il computer, contengono variabili istanza, che ne identificano le caratteristiche (ad esempio la posizione sul monitor), e possono eseguire determinate operazioni grazie ai metodi, funzioni relative a capacità specifiche di ciascun oggetto. L'applicazione di base, creata dopo questa sommaria infarinatura, contiene un campo di testo e due pulsanti, che
on click inviano un messaggio contenente il nome di un metodo, che sarà a sua volta eseguito da un oggetto capace di intercettarlo. Il formato con cui vengono inviati i messaggi é così codificato:
<span style="font-size:1.0em">
[receiver message];
[receiver messageWithArgument:theArgument];
</span>
a testimonianza di quanto possa essere chiaro Objective-C, soprattutto per chi mastica un po' di inglese.