0

使用 Evernote API,我有一个具有 NSUInteger 属性的对象,名为hash. 对于我正在查看的特定对象,这等于:

<f5b5444b 33e740b7 f9d49a3b ddb6a39c>

我想将其转换为 NSString。这样做:

[NSString stringWithFormat:@"%d", noteResource.hash]

给我这个:

530049088

我怎样才能正确地将哈希值转换为 NSString?

4

1 回答 1

3

当您看到输出为“<” 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 方法来反转上述内容。

于 2013-07-11T13:24:47.177 回答