使用 Evernote API,我有一个对象,它有一个名为 hash
的 NSUInteger 属性。对于我正在查看的特定对象,这等于:
<f5b5444b 33e740b7 f9d49a3b ddb6a39c>
我想把它转换成一个 NSString。这样做:
[NSString stringWithFormat:@"%d", noteResource.hash]
给我这个:
530049088
我怎样才能正确地将散列值转换为 NSString?
最佳答案
当您看到输出为“<”8 位十六进制数字空格....“>”时,这是记录 NSData 对象的结果 (NSLog(@"%@", myDataObject);
).所以我相信您拥有的不是 NSUInteger
,而是 NSData *
对象。
没有内置的方法可以在字符串和数据之间进行转换,您需要在代码中完成:
- (NSString *)dataToString:(NSData *)data
{
NSUInteger len = [data length];
NSMutableString *str = [NSMutableString stringWithCapacity:len*2];
const uint8_t *bptr = [data bytes];
while(len--) [str appendFormat:@"%02.2x", *bptr++];
return str;
}
如果可行,您可以根据需要编写自己的 stringToData 方法来反转上述内容。
关于iphone - 将散列转换为 NSString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17591846/