Comment convertir un tableau d'octets à NSString
Je suis de la lecture des données à partir d'un protocole TCP/IP stream et je suis l'obtention d'un tableau d'octets à partir de la pré-serveur existant. Je suis maintenant essayer de trouver un moyen de convertir ce tableau à une NSString
. J'ai trouvé plusieurs exemples, mais j'ai du mal à faire mes résultats souhaités.
NSData *data=[[NSMutableData alloc] init];
uint8_t buffer[1024];
unsigned int len=0;
len=[(NSInputStream *)stream read:buffer maxLength:1024];
if(len>0){
[data appendBytes:&buffer length:len];
//BYTE ARRAY OBTAINED OK!!
///////////////////////////////////////////////////////
//METHOD #1 - Yields 'nil'
NSString *string = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
///////////////////////////////////////////////////////
//METHOD #2 - Log prints OK, but messageString says
//'invalid' in debugger, and get warnings all over the
//place. I know this is wrong, but it semi-works :)
size_t length=[data length];
unsigned char aBuffer[length];
[data getBytes:aBuffer length:length];
aBuffer[length - 1]=0;
NSString *messageString =aBuffer;
NSLog (@"%s",messageString);
///////////////////////////////////////////////////////
}else{
NSLog(@"No Buffer");
}
S'il vous plaît aider! Toute aide fournie est GRANDEMENT apprécié.
- Pourquoi les downvotes?
Vous devez vous connecter pour publier un commentaire.
J'ai eu la réponse.
J'ai dû changer cela:
À ceci:
C'est faux:
Il devrait être:
Assurez-vous que vos données est terminée par null, évidemment.