如何使用 NSLog 显示十六进制字节

How to display hexadecimal bytes using NSLog

提问人:gabac 提问时间:9/15/2010 最后编辑:gonzobrainsgabac 更新时间:3/19/2019 访问量:22153

问:

如何使用 NSLog 显示以下字节?

const void *devTokenBytes = [devToken bytes];
Objective-C 字节 NSLOG

评论


答:

16赞 Tim 9/15/2010 #1

假设该类型(来自调用),则可以使用 NSData 上的方法获取包含数据字节的十六进制表示形式的字符串。请参阅 NSData 类参考devTokenNSData *bytesdescription

NSLog(@"bytes in hex: %@", [devToken description]);

评论

0赞 gabac 9/15/2010
但现在我收到错误消息“警告:从不兼容的指针类型传递'NSLog'的参数 1”
4赞 jer 9/15/2010
因为上面的代码有错误。他省略了字符串文字前面的@。即 NSLog(“...”) 而不是 NSLog(@“...”)。
0赞 Tim 9/15/2010
jer, Chuck:谢谢你分别指出和修复。最近对我来说太多了......
0赞 pixelfreak 3/27/2013
奇怪的是,当我输出十六进制值时,它用 和 包装。我该如何摆脱它?<>
9赞 Heath Borders 5/18/2011 #2

如果您想要十六进制序列:

NSMutableString *hex = [NSMutableString stringWithCapacity:[devToken length]];
for (int i=0; i < [devToken length]; i++) {
  [hex appendFormat:@"%02x", [devToken bytes][i]];
}

评论

0赞 evandrix 3/19/2019
(!)Argument type 'const void' is incomplete