【问题标题】:Convert a hash to NSString?将哈希转换为 NSString?
【发布时间】:2013-07-11 11:11:23
【问题描述】:

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

<f5b5444b 33e740b7 f9d49a3b ddb6a39c>

我想把它转换成一个 NSString。这样做:

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

给我这个:

530049088

如何正确地将哈希值转换为 NSString?

【问题讨论】:

  • Eeeeuuughhhhh...您使用的是 128 位机器吗?或者一个NSInteger怎么能占16个字节?
  • 你想要这个:stackoverflow.com/q/7520615/1603072 吗?
  • @Vin 看起来像。剩下的问题是它是一个 NSUInteger,我所拥有的。如何将其转换为 const void *
  • noteResource 是一个 NSData 对象,noteResource.hash 是一些哈希值 (NSUInteger)。 “正确地将哈希值转换为 NSString” 是什么意思?为什么要转换为const void *?你期待什么结果?

标签: iphone ios objective-c cocoa-touch nsstring


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2012-11-11
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    相关资源
    最近更新 更多