2010-04-13 28 views
9

Come chiamare una funzione nell'obiettivo C? Per esempio:Come si chiama una funzione Objective C?

definisco la funzione nell'intestazione (file h):

-(void)abc 

e implementare questa funzione nel file di implementazione (file .m):

-(void)abc 
{ 
//..... 
///.... 
} 

Ora come faccio chiama questa funzione da dove ne ho bisogno?

risposta

2

Questo è un metodo su alcune classi. Se la classe si chiama Foo, potrebbe essere qualcosa di simile:

Foo* foo = [[Foo alloc] init]; 
[foo abc]; 
20

chiamare questo metodo all'interno della stessa classe si sarebbe chiamata:

[self abc]; 

Per chiamare da un'altra classe, a patto di avere un riferimento a un'istanza di tale classe si avrebbe chiamati

[instance abc]; 

Se avete parametri nel metodo, per il primo parametro si dichiarerebbe come (ammesso che è una stringa):

- (void) abc : (NSString *)param1; 

e chiamarlo come:

[self abc:@"Yoop"]; 

Tutti i seguenti parametri devono essere dato un nome. Così, per esempio, se ci fossero due parametri si dichiara come:

- (void) abc : (NSString *)param1 paramName2:(NSString *)param2; 

Questo sarebbe stato chiamato come:

[self abc:@"Yoop" paramName2:@"Woop"]; 

Ci vuole un po 'per abituarsi per cominciare, ma c'è metodo alla follia! Nella terminologia Objective-C non si sta veramente chiamando il metodo, si sta passando un messaggio. Questo è un buon post sul blog che descrive le differenze: Cocoa with Love

discuto questo qui: What's with the square brackets (calling methods)

1

è troppo facile basta scrivere

[self function]; 
Problemi correlati