iphone - 将散列转换为 NSString?

标签 iphone ios objective-c cocoa-touch nsstring

使用 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/

相关文章:

iphone - 保存来自用户的请求

ios - iTunes12.7无法安装ipa

objective-c - 如何在 Objective-C 类中设置 boolean 类型属性

objective-c - iOS 中具有多个类的 MVC 设计模式

ios - AVCaptureSessionPreset : why does standard iPhone camera save 2448 × 3264, 如果最大预设为 1088x1920?

ios - 有没有办法注册所有 touchEnded 事件,无论触摸多长时间?

iphone - 如何在 UITableViewController 中显示 MSMutableArray 数据?

ios - 4 英寸 iPhone 中的 uitableviewcell uiimage 自动布局问题

iphone - NSMutableArray 有问题吗?

iphone - 从警报框中检索输入的文本。