使用Evernote API,我有一个具有名为hash
的NSUInteger属性的对象。对于我正在查看的具体对象,这等于:
<f5b5444b 33e740b7 f9d49a3b ddb6a39c>
我想将其转换为NSString。这样做:
[NSString stringWithFormat:@"%d", noteResource.hash]
给我这个:
530049088
我怎样才能正确地将哈希值转换为NSString?
答案 0 :(得分:3)
当您看到输出为“&lt;”时8个十六进制数字空间....“&gt;”,它是记录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方法,如果需要,可以反转上面的内容。