Considérez les 2 méthodes suivantes pour lire une chaîne de caractères dans un fichier :
NSString *path = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"txt"];
NSString *string = [NSString stringWithContentsOfFile:path encoding:NSASCIIStringEncoding error:NULL];
NSString *path = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"txt"];
NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:path];
NSData *data = [file readDataToEndOfFile];
NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
[file closeFile];
Je préférerais me fier à la méthode n° 1, mais elle se comporte étrangement lorsqu'elle est utilisée dans le contexte suivant :
NSString *string; // CLASS VARIABLE
(void) setupView
{
string = ...; // LOADING THE STRING
}
(void) drawView
{
...; // USING THE STRING
}
En bref, il s'agit d'une boucle de dessin OpenGL-ES basée sur un NSTimer. Le problème est que la chaîne n'est accessible qu'à la première image. A l'image suivante, le simulateur IPhone (2.2) se plante en essayant d'accéder à la chaîne.
Probablement "quelque chose dans mon code, ou dans le code OpenGL-ES que j'utilise" pourrait-on dire... Mais comment expliquer le fait étrange que si j'utilise la méthode n°2 pour charger la chaîne, tout fonctionne comme prévu ?
Des indices ?