2012-02-04 13 views
5

Sto studiando sviluppo ObjC e iOS. Ogni componente che utilizzo nelle mie app viene creato a livello di programmazione (viste, pulsante, etichette, ecc.).Usa vuoto invece IBAction come tipo di ritorno del metodo

Ecco il mio codice

... 
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[self.btn addTarget:self 
        action:@selector(someAction:) 
     forControlEvents:UIControlEventTouchDown]; 
.... 


-(void)someAction 
{ 
logic 
} 

mi accorgo che posso usare al posto del vuoto IBAction come tipo di ritorno di selettore. È questo l'approccio corretto? Potrebbe esserci qualche insidia?

+0

possibile duplicato di [IBOutlet e IBAction] (http://stackoverflow.com/questions/1643007/iboutlet-and-ibaction) –

risposta

17

L'utilizzo di IBAction indica a Xcode che si desidera che il metodo sia disponibile come metodo di azione in Interface Builder. Questo è l'unico effetto. Altrimenti è identico a void. Infatti nel UINibDeclarations.h troverete questo:

#define IBAction void 

Utilizzando IBAction è una buona idea, anche se non si utilizzano i file pennino, perché è un segnale per il lettore (voi o un collega di lavoro) che si intende usa il metodo come azione di un controllo dell'interfaccia utente.

+0

Non aprire un nuovo argomento. Preferisco creare tutto a livello di codice piuttosto che usare IB. Forse sembra pazzesco, ma questo approccio è più facile per me. Sono contrari all'utilizzo di questo approccio? – objlv

+4

Sì, ci sono contro. Usare o non usare IB tende ad essere un argomento religioso. Lo uso pesantemente. La maggior parte delle app di esempio di Apple lo utilizzano. Presumo che le persone che non lo usano scrivano un sacco di codice boilerplate e passino attraverso molti cicli edit-compile-run modificando le coordinate, i colori e le dimensioni dei caratteri nel loro codice. –

+0

Nell'editor di Xcode, c'è una piccola icona per indicare se è connessa o meno. L'utilizzo di IBAction/IBOutlet per metodo/proprietà non IB potrebbe essere fonte di confusione. Ma comunque, è una questione di gusti. – hoshi

Problemi correlati