Lorsque vous définissez une variable en dehors de la portée d'une fonction, cette variable valeur est écrite dans votre fichier exécutable. Cela signifie que vous pouvez uniquement utiliser une valeur constante. Car vous ne savez pas tout sur l'environnement d'exécution au moment de la compilation (les classes sont disponibles, ce qui est de leur structure, etc.), vous ne pouvez pas créer des objets objective-c jusqu'au moment de l'exécution, à l'exception des chaînes constantes, qui sont donnés une structure spécifique et de la garantie de rester de cette façon. Ce que vous devez faire est d'initialiser la variable à zéro et utiliser +initialize
pour créer votre image. initialize
est une méthode de la classe qui va être appelée avant toute autre méthode est appelée sur votre classe.
Exemple:
NSImage *imageSegment = nil;
+ (void)initialize {
if(!imageSegment)
imageSegment = [[NSImage alloc] initWithContentsOfFile:@"/User/asd.jpg"];
}
- (id)init {
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}