基数为10的NSData

时间:2013-08-14 12:51:18

标签: ios objective-c c

是否可以在基数10中使用NSLog NSData。基本上可以看到NSData的字节数组。

我希望看到这样的输出:[51,-55,55,-54,-110]

1 个答案:

答案 0 :(得分:4)

您可以在NSData上定义类别以生成带有十进制数据表示的字符串,如下所示:

@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]);