0

Evernote API を使用して、 と呼ばれる NSUInteger プロパティを持つオブジェクトがありますhash。私が見ている特定のオブジェクトの場合、これは次のようになります。

<f5b5444b 33e740b7 f9d49a3b ddb6a39c>

これを NSString に変換したい。これを行う:

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

私にこれを与えます:

530049088

ハッシュ値を NSString に正しく変換するにはどうすればよいですか?

4

1 に答える 1

3

"<" 8 hex digits space .... ">" という出力が表示される場合は、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 に答える