Básicamente, tengo (que se explica aquí: Objective-C Constants in Protocol) el siguiente códigoObjective-C ¿Es seguro sobreescribir [NSObject initialize]?
// MyProtocol.m
const NSString *MYPROTOCOL_SIZE;
const NSString *MYPROTOCOL_BOUNDS;
@implementation NSObject(initializeConstantVariables)
+(void) initialize {
if (self == [NSObject class])
{
NSString **str = (NSString **)&MYPROTOCOL_SIZE;
*str = [[MyClass someStringLoadedFromAFile] stringByAppendingString:@"size"];
str = (NSString **)&MYPROTOCOL_BOUNDS;
*str = [[MyClass someStringLoadedFromAFile] stringByAppendingString:@"bounds"];
}
}
@end
Me preguntaba: ¿Es seguro para mí tener una categoría que anula el método del NSObject +initialize
?
Primero, no necesita crear una categoría para hacer que la llamada en tiempo de ejecución sea 'inicializada', lo hará automáticamente antes de que se envíe ningún mensaje. En segundo lugar, ¿qué quieres decir con "seguro"? ¿Alguien lee la documentación más? –
Mira la categoría ... Es una sobreescritura de la clase NSObject, no de mi clase. Estoy tratando de tener un método que sé que se llamará al comienzo de cualquier programa que utilice el marco que estoy creando. –