-2

基数 10 で NSLog NSData を実行することは可能ですか。基本的には NSData のバイト配列を表示します。

次のような出力を見たいと思います: [51, -55, 55, -54, -110]

4

1 に答える 1

4

次のように、カテゴリを onに定義してNSData、10 進データ表現の文字列を生成できます。

@interface NSData (DecimalOutput)
-(NSString*)asDecimalString;
@end
@implementation NSData (DecimalOutput)
-(NSString*)asDecimalString {
    NSMutableString *res = [NSMutableString string];
    [res appendString:@"["];
    // Construct an `NSString`, for example by appending decimal representations
    // of individual bytes to the output string
    const char *p = [self bytes];
    NSUInteger len = [self length];
    for (NSUInteger i = 0 ; i != len ; i++) {
        [res appendFormat:@"%i ", p[i]];
    }
    [res appendString:@"]"];
    return res;
}
@end

NSLogこれを新しい形式の文字列に使用できるようになりました。

NSLog("Data:%@", [myData asDecimalString]);
于 2013-08-14T13:00:09.633 に答える