2011-05-27 36 views
5
+ (void)Foo; 
- (void)Foo; 

En el método, - (void)Foo, la palabra clave self significa una instancia de la clase. Pero en el método, + (void)Foo, ¿qué significa la palabra clave self? ¿Significa el Class?Acerca de la palabra clave de `self`

Respuesta

7

self es uno de los dos parámetros implícitos para todos los métodos. Es un puntero a un objeto, e inicialmente es cualquier objeto que recibió el mensaje para invocar el método que se está ejecutando. Cuando el método en cuestión es un método de instancia, self será una instancia de la clase en la que se define el método, o una de sus subclases. En el caso de un método de clase, self será el objeto de clase.

+5

¿Cuál es exactamente la razón por la cual los métodos de clase de Objective-C pueden subclasificarse mientras que los de Java no pueden ..... – bbum

5

Sí. Los siguientes funciona bien:

+(id)myObjectWithInt:(NSInteger)anInt { 
    return [[[self alloc] initWithInt:anInt] autorelease]; 
} 
Cuestiones relacionadas