Problème de NSNumber (cocoa)

rvmacge

Membre enregistré
9 Juin 2004
3
0
Bonjour,

Je suis en train d'écrire un programme en Objective-C dont la finalité est de créer un fichier avec des nombres dedans. Pour cela je me sert de NSNumber et de NSData.

Le problème que je rencontre est que je n'arrive pas à inscrire les nombres au bon format dans le fichier.

Par exemple :
si j'ai le nombre 13 (que je formate en Short, donc sur 2 octets, avec NSNumber -> [NSNumber numberWithShort:13]), je veux que dans le fichier que le programme crée il y ai écrit 00 0D en hexadécimal. Or dans le meilleur des cas il y a son équivalent en ASCII... :mouais:

Je pense avoir essayé pas mal de trucs et je suis à court d'imagination :hein: La doc d'apple est très théorique sur le sujet (il n'y a pas d'exemple).
Si vous avez une petite idée, c'est le moment !

:rose: Merci d'avance :rose:

RV
 
Voici le bout de code que j'ai et qui fait que je passe par un encodage en ASCII.

Bloc de code:
 NSData *monData = [[[NSNumber numberWithShort:13] stringValue] dataUsingEncoding:NSASCIIStringEncoding];

Bien entendu, c'est ça qui pose problème, mais j'ai essayé pas mal d'autres trucs sans plus de succès. Ça inspire quelqu'un tout ça ?
 
Sinon, tu converti tes NSNumber en int.
Tu les cast en char, et tu écris à l'aide de fwrite dans ton fichier.
Ce n'est peut-être même pas la peine de les caster en char.

Le fopen, fwrite a l'avantage d'être multiplateforme.
 
Bonjour,

pour la creation de chaine de caracteres, il faut se souvenir de la bonne vieille fonction printf et ses derivees. Et si on suppose que le formattage supporte par ces fonctions l'est aussi par [NSString stringWithFormat], cela devrait permettre une conversion int->hexa aisee en utilisant un "%x" :

NSString* maChaine = [NSString stringWithFormat:@"%x", 13];