Nelle prossime lezioni vedremo come dichiarare una classe in ObjC. Ci soffermiamo solo un momento ad esaminare la sintassi necessaria a richiamare i metodi e le proprietà esposte da una classe.
A differenza di molti linguaggi che utilizzano il "punto" (oggetto.metodo
), per la chiamata ad un metodo Objective C, ci offre la sintassi:
[oggetto metodo]
Simile a quella di SmallTalk. Per inciso, questa operazione, in SmallTalk, è considerata non tanto come la chiamata ad una "funzione", quanto l'invio di un messaggio ad un'entità. In quest'ottica potremmo rileggere la sintassi così:
[ricevente messaggio]
Il receiver può essere una istanza di una classe o la classe stessa, nel primo caso il metodo che si vuole invocare è un "metodo di istanza" nel secondo caso un "metodo di classe". Ne parleremo ancora più avanti.
Per fare un esempio, ricollegandoci al codice visto nella lezione precedente, possiamo vedere come è possibile annidare le chiamate a metodi, esaminiamo questa espressione:
[[NSAutoreleasePool alloc] init];
In questo caso abbiamo chiamato prima il metodo alloc
che la classe NSAutoreleasePool
eredita da NSObject
. Come risultato di questa operazione abbiamo una nuova istanza di NSAutoreleasePool
, dalla quale chiamiamo il metodo init
.
Questo esempio rappresenta, inoltre, la modalità di inizializzazione degli oggetti in Objective C.
'Dot' notation
In realtà la "classica" notazione con il punto (dot notation) può essere utilizzata anche in ObjectiveC 2.0 per accedere alle proprietà. Ad esempio, queste righe di codice:
int valore = [oggetto proprieta]; [oggetto setProprieta:valore];
sono equivalenti a queste:
int valore = oggetto.proprieta; oggetto.proprieta = valore;
La dot notation facilita il passaggio alla programmazione Objective C da chi proviene da java o da altri linguaggi "c like".