使用 Evernote API,我有一个具有 NSUInteger 属性的对象,名为hash
. 对于我正在查看的特定对象,这等于:
<f5b5444b 33e740b7 f9d49a3b ddb6a39c>
我想将其转换为 NSString。这样做:
[NSString stringWithFormat:@"%d", noteResource.hash]
给我这个:
530049088
我怎样才能正确地将哈希值转换为 NSString?
使用 Evernote API,我有一个具有 NSUInteger 属性的对象,名为hash
. 对于我正在查看的特定对象,这等于:
<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 方法来反转上述内容。