2012-06-08 12 views

Odpowiedz

5

członkiem i publiczne funkcje odpowiednio.

Takie,

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

Gdzie NSObject jest urządzeniem klasy i id jest obiektem

Jeśli kiedykolwiek używane C++, A + jest równoważny statycznych

28

- funkcjami są funkcje instancji i + funkcje są funkcjami klasycznymi (statycznymi).

Więc powiedzmy, że masz klasę o nazwie Person oraz następujące funkcje

-(void)doSomething;

+(void)doSomethingElse;

Można by wywołać te funkcje z następujących czynności:

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

[myPerson doSomething];

[Person doSomethingElse];

Jest to bardziej opis składni, zakładając, że rozumieją pojęcie klasy vs instancji.

edit:

tylko dodać: w Objective-C, rzeczywiście można wywołać funkcję klasy na wystąpienie, ale efekt nie jest inaczej niż powołując się na samej (zasadniczo kompiluje do klasy ta sama rzecz).

Więc można zrobić

[myPerson doSomethingElse]

Generalnie, nie byłoby to zrobić, jak to jest mylące i wprowadzające w błąd czytać. Wskazuję na to, żebyś się nie zdziwił, gdy natkniesz się gdzieś na taki kod.