J'ai juste du mal à lire et à écrire NSString dans un fichier de données sur l'iphone.NSString lire/écrire dans le fichier
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *saveFile = [documentsDirectory stringByAppendingPathComponent:@"Profiles.dat"];
Boolean saveFileExists = [[NSFileManager defaultManager] fileExistsAtPath:saveFile];
// NSString *saveFile = [documentsDirectory stringByAppendingPathComponent:@"Profiles.dat"];
NSMutableData *gameData;
NSKeyedUnarchiver *decoder;
NSKeyedArchiver *encoder;
//decoder = [[NSKeyedUnarchiver alloc] initForWritingWithMutableData:gameData];
myGameState *gameState = [myGameState sharedMySingleton];
if(saveFileExists) {
gameData = [NSData dataWithContentsOfFile:saveFile];
decoder = [[NSKeyedUnarchiver alloc] initForReadingWithData:gameData];
gameState.Profile1 = [decoder decodeObjectForKey:@"Name1"];
gameState.Profile2 = [decoder decodeObjectForKey:@"Name2"];
gameState.Profile3 = [decoder decodeObjectForKey:@"Name3"];
gameState.Profile4 = [decoder decodeObjectForKey:@"Name4"];
gameState.Profile5 = [decoder decodeObjectForKey:@"Name5"];
gameState.curProfile = [decoder decodeObjectForKey:@"curProfile"];
[decoder release];
}
else {
gameData = [NSMutableData data];
encoder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:gameData];
gameState.Profile1 = @"Default1";
gameState.Profile2 = @"Default2";
gameState.Profile3 = @"Default3";
gameState.Profile4 = @"Default4";
gameState.Profile5 = @"Default5";
[encoder encodeObject:@"Default1" forKey:@"Name1"];
[encoder encodeObject:@"Default2" forKey:@"Name2"];
[encoder encodeObject:@"Default3" forKey:@"Name3"];
[encoder encodeObject:@"Default4" forKey:@"Name4"];
[encoder encodeObject:@"Default5" forKey:@"Name5"];
gameState.curProfile = gameState.Profile1;
[encoder encodeObject:gameState.curProfile forKey:@"curProfile"];
[encoder finishEncoding];
//[gameData writeToFile:<#(NSString *)path#> atomically:<#(BOOL)useAuxiliaryFile#>
[gameData writeToFile:saveFile atomically:YES ];
//[gameData writeToFile:saveFile atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];
[encoder release];
}
gameState.curProfile etc sont tous des pointeurs NSString. Maintenant, je suis très nouveau à l'objectif C et ne peux tout simplement pas sembler fonctionner correctement. J'ai cherché autour des forums et ne peux pas sembler trouver la bonne manière de faire ceci. Littéralement tout ce que je veux est de lire un NSString dans un fichier dat mais il ne fonctionne pas comme il est. J'ai réussi à écrire des ints et des bools sans problèmes, je n'arrive pas à résoudre le problème du texte par moi-même. toute aide est appréciée merci g
J'ai trouvé ce que je faisais de mal. J'aurais dû utiliser NSMutableString comme je changeais les choses plus tard donc tu avais raison que le code ci-dessus fonctionnait juste une autre erreur de noob. et acclamations pour ce lien qui va me sauver beaucoup de temps à l'avenir j'ai pensé quand je le faisais qu'il devait y avoir un moyen plus facile: P merci encore g – glogic