43 votes

NSData pour afficher une chaîne de caractères

ceci est mon premier post. Je fais construire une application iPhone et collé avec les éléments suivants:

unsigned char hashedChars[32];
CC_SHA256([inputString UTF8String], [inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding], hashedChars);
NSData *hashedData = [NSData dataWithBytes:hashedChars length:32];
NSLog(@"hashedData = %@", hashedData);

Le journal est montrant comme:

hashedData = <abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh>
  • note hashedData est NSData, pas NSString

Mais ce dont j'ai besoin est de convertir hashedData en NSString qui ressemble à ceci:

NSString *someString = @"abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh";

Donc, fondamentalement, le résultat doit être comme hashedData sauf que je ne veux pas les crochets et les espaces entre les deux.

Toute aide est très appréciée.

64voto

Noah Witherspoon Points 35239

Utiliser le NSString initWithData:codage: méthode.

NSString *someString = [[NSString alloc] initWithData:hashedData encoding:NSASCIIStringEncoding];

(edit pour répondre à votre commentaire:)

Dans ce cas, Joshua réponse de l'aide:

NSCharacterSet *charsToRemove = [NSCharacterSet characterSetWithCharactersInString:@"< >"];
NSString *someString = [[hashedData description] stringByTrimmingCharactersInSet:charsToRemove];

21voto

topace Points 976

J'ai trouvé la solution et je pense que j'ai été stupide.

Fondamentalement, tout ce que j'avais à faire:

NSString *someString = [NSString stringWithFormat:@"%@", hashedData]; //forcer l' NSData devenir NSString

Encore une fois merci à tous ceux qui ont essayé d'aider, Beaucoup apprécié.

2voto

Joshua Nozzi Points 38718

Définir un NSCharacterSet qui contient la délinquance caractères, puis filtrer votre chaîne à l'aide de -stringByTrimmingCharactersInSet:.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X