Programmazione iOS e Mac (Le categorie)

      1 commento su Programmazione iOS e Mac (Le categorie)

Le categorie sono un potente strumento per estendere le possibilità di una data classe anche non conoscendone il codice sorgente. Estenderne le possibilità significa aggiungere nuovi metodi ma non nuove variabili istanza.

I nuovi metodi vanno dichiarati in un file di interfaccia specificando un nome della categoria e si implementano in un file utilizzando lo stesso nome

#import "ClasseNome.h“
@interface ClasseNome ( CategoriaNome )

  // dichiarazione nuovi metodi
@end

Il file d'implementazione sarà:
#import "ClasseNome+CategoriaNome.h“
@implementation ClasseNome(CategoriaNome)

  // definizione nuovi metodi
@end

Tutte le variabili istanza nello spazio di visibilità della classe ClasseNome sono anche visibili per la categoria. Non ci sono limiti al numero di categorie che si possono aggiungere ad una data classe, purchè ogni categoria sia caratterizzata da un nome di file diverso.

I metodi aggiunti mediante una categoria possono essere usati per estendere le funzionalità di una classe o ridefinire metodi ereditati dalla classe. Una categoria può anche ridefinire metodi dichiarati nella classe stessa

E’ possibile aggiungere metodi, quindi definire una o più categorie, anche per la classe radice NSObject. Questo fa si che i nuovi metodi possano essere disponibili per tutte le classi che ereditano da NSObject .