2010-11-26 28 views

Respuesta

13

Use +initialize método de su clase: (. Se ha actualizado para añadir if (self == [MyClass class]) condicional, como se sugiere en los comentarios)

@implementation MyClass 

static NSUInteger counter; 

+(void)initialize { 
    if (self == [MyClass class]) { 
     counter = 0; 
    } 
} 

@end 

+2

Plus es posible que desee asegurarse de que el 'initialize' no se ejecutará en dos ocasiones si la clase está subclasificada? – zoul

+1

¿Qué pasa con 'Contador NSUInteger estático = 0;'? No es necesario el método 'initialize' cuando un inicializador C estándar funcionará. – JeremyP

+0

zoul - ¡buen punto! Editaré –