这是我的第一篇文章。 我正在构建一个iPhone应用程序,并坚持以下几点:
unsigned char hashedChars[32]; CC_SHA256([inputString UTF8String], [inputString lengthOfBytesUsingEncoding:NSASCIIStringEncoding], hashedChars); NSData *hashedData = [NSData dataWithBytes:hashedChars length:32]; NSLog(@"hashedData = %@", hashedData);日志显示如下:
hashedData = <abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh> 注意hashedData是NSData,而不是NSString但是我需要的是将hashedData转换成NSString,如下所示:
NSString *someString = @"abcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefghabcdefgh";所以基本上,结果需要像hashedData,除了我不想要的角括号和空格之间。
任何帮助深表感谢。
I am building an iPhone app and stuck with the following:
unsigned char hashedChars[32]; CC_SHA256([inputString 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 NSStringBut 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.
最满意答案
使用NSString initWithData:encoding:方法。
NSString *someString = [[NSString alloc] initWithData:hashedData encoding:NSASCIIStringEncoding];(编辑回复你的评论:)
在这种情况下,约书亚的回答确实有帮助:
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.
更多推荐
发布评论