iphone - NSData 显示为字符串

标签 iphone nsstring nsdata

我正在构建一个 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 一样,除了我不想要尖括号和中间的空格。

最佳答案

使用 NSString initWithData:encoding: 方法。

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

(编辑以回复您的评论:)

在这种情况下,约书亚的回答确实有帮助:

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

关于iphone - NSData 显示为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2653288/

相关文章:

ios - NSData 如何存储在 .plists 中?

ios - AVPlayer 无法在 iOS 9 上播放

iphone - 点击时 UIScrollview 向下滚动

ios - 如何在 iOS 中将所有 UIView 从左移到右? ( objective-C )

ios - 将 NSString 转换为 NSDate(然后再返回)

ios - 如何从 NSString 中删除十六进制字符

iphone - 什么是 NSConcreteData,它在哪里定义?

iphone - 如何以编程方式缩放 UIScrollView?

objective-c - 如何从格式字符串(如 @"xxx=%@, yyy=%@")和对象的 NSArray 创建 NSString?

swift - 仅当应用程序不是全新安装时,无法将 __NSCFDictionary 类型的值转换为 NSData