开发者

NSData to display as a string

I am building an iPhone app and stuck with the following:

unsigned char hashedChars[32];
CC_SHA256([input开发者_开发百科String UTF8String], [inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding], hashedChars);
NSData *hashedData = [NSData dataWithBytes:hashedChars length:32];
NSLog(@"hashedData = %@", hashedData);

The log is showing like:

hashedData = <abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh>
  • note hashedData is NSData, not NSString

But what I need is to convert hashedData into NSString that looks like:

NSString *someString = @"abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh";

So basically the result needs to be like hashedData except I don't want the angle brackets and spaces in between.


Use the NSString initWithData:encoding: method.

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

(edit to respond to your comment:)

In that case, Joshua's answer does help:

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


I have found the solution and I think I was being stupid.

Basically all I had to do is:

NSString *someString = [NSString stringWithFormat:@"%@", hashedData]; //forcing the NSData to become NSString

Once again thank you to all who tried to help, Much appreciated.


Define an NSCharacterSet that contains the offending characters then filter your string using -stringByTrimmingCharactersInSet:.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜