2012-06-08 7 views

Antwort

5

Mitglied und öffentlichen Funktionen sind.

Derart, dass

id object = [[NSObject alloc] init]; 
+ (id)alloc; 
- (id)init; 

Wo NSObject eine Klasse ist und id ist ein Objekt

Wenn Sie jemals C++ verwendet haben, a + statische entsprechen

28

- Funktionen sind beispielsweise Funktionen und + Funktionen sind Klasse (statische) Funktionen.

Also lassen Sie uns sagen, dass Sie eine Klasse Person genannt, und die folgenden Funktionen

-(void)doSomething;

+(void)doSomethingElse;

Sie würden diese Funktionen mit der folgenden aufrufen:

Person *myPerson = [[Person alloc] init];

[myPerson doSomething];

[Person doSomethingElse];

Dies ist eher eine Syntaxbeschreibung, vorausgesetzt, Sie das Konzept der Klasse vs Instanz verstehen.

edit:

nur hinzufügen: In Objective-C, man kann tatsächlich eine Klasse-Funktion auf einer Instanz aufrufen, aber der Effekt ist nicht anders, als es auf die Klasse Aufruf selbst (im Wesentlichen die kompiliert gleiche Sache).

So können Sie in der Regel

[myPerson doSomethingElse]

tun, würden Sie dies nicht tun, wie es verwirrend und irreführend ist zu lesen. Ich weise darauf hin, so dass Sie nicht überrascht sein werden, wenn Sie irgendwo einen solchen Code finden.

Verwandte Themen