back to top

Applicazione window-based: analisi del codice – Guida Sviluppo App iOS

Passiamo all’analisi del codice presente nel nostro progetto window-based. Come possiamo vedere la cartella Classes conterrà solamente due file con la seguente struttura:

NomeProgettoAppDelegate

Il file di header

Andiamo quindi ad aprire il file di header che presenta il seguente codice:
#import <UIKit/UIKit.h?>

@interface TutorialWebMasterAppDelegate : NSObject <UIApplicationDelegate?> {
    UIWindow *window;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end
Come prima istruzione viene importato il framework UIKit. Questo framework è indispensabile per costruire delle interfacce grafiche in quanto contiene tutti gli elementi grafici come le window, le view, i bottoni, le tab bar e molto altro. Il nome di ogni elemento grafico inizierà con il prefisso UI per identificare l’appartenenza di questi elementi al framework UI.

Continuando nella lettura del codice, troviamo la definizione della classe che possiede un solo attributo identificato da una window. Viene dichiarata poi la property relativa all’attributo secondo le regole esposte nei capitoli precedenti.

L’attenzione del lettore può essere attratta dalla keyword IBOutlet che è un direttiva rivolta ad Interface Builder; per il momento ignoriamo questa direttiva che verrà trattata abbondantemente più avanti.

Il file d’implementazione

Andiamo adesso ad analizzare il codice sorgente nel file di implementazione. Come possiamo vedere il file contiene, oltre all’import relativo del file header e del synthesize della window, anche molte altri metodi i quali vengono invocati automaticamente quando l’applicazione si trova in un determinato stato. Per il momento concentriamoci esclusivamente sul primo metodo

didFinishLaunchingWithOptions
che contiene il codice che verrà eseguito una volta che è stata lanciata l’applicazione.

All’interno di questo metodo troviamo solo l’istruzione

[window makeKeyAndVisible];
che mostra a video la window creata. Di default il colore della window è bianco.

Andando a cliccare sull’icona Build and Run si aprirà automaticamente il simulatore che, inizialmente, mostrerà una schermata nera e poi mostrerà la window bianca. Il lasso di tempo in cui il simulatore mostra lo schermo nero indica il tempo di launch dell’applicazione dopo il quale viene richiamato il metodo

didFinishLaunchingWithOptions
che mostrerà a schermo la window bianca.

Concentriamoci adesso sul metodo didFinishLaunchingWithOptions e modifichiamo il corpo del metodo nel seguente modo:

window.backgroundColor = [UIColor redColor];
[window makeKeyAndVisible];
La linea di codice aggiunta consente di accedere al backgroundColor dell’oggetto window al quale assegniamo il colore rosso (è stato possibile effettuate l’asssegnazione perchè nel nostro file header avevamo dichiarato, in maniera appropriata, le property relative all’oggetto window). Il colore viene assegnato invocando il metodo di classe redColor della classe UIColor.

Se provate a lanciare l’applicazione, adesso, verrà mostrata la window di colore rosso.

Scorrendo il listato di codice relativo al file di implementazione troviamo come ultimo metodo dealloc. Questo metodo è l’equivalente del distruttore in una classe C++. Analizziamo il codice relativo al metodo dealloc:

[window release];
[super dealloc];
Quando abbiamo parlato delle property abbiamo detto che l’attributo retain incrementava di una unità il contatore relativo ai riferimenti a quell’oggetto. il metodo release compie l’operazione inversa: decrementa di un’unità questo contatore. Quando il contatore arriva a zero l’oggetto viene deallocato. La seconda istruzione ha l’effetto di invocare il metodo dealloc sulla superclasse, ovvero sulla classe che abbiamo ereditato (nel nostro caso NSObject).

Pubblicitร 

In questa guida...