【发布时间】:2012-12-09 02:07:04
【问题描述】:
我有 NSData,我想按字节解析它。这是一个例子。
data is <8283010c ec4f483f 0d00000c 0c0f2840 >
我想将 8 个字节传递给我创建的每个对象 (8283010c ec4f483f for first object,0d00000c 0c0f2840 for the second) ,然后像这样解析每个字节。
// First byte > Action = 82
// 2nd and 3rd byte > Status = 83 01
// 4,5,6,7 byte > Time = 0c ec 4f48
// 8 byte > Number = 3f
我如何将 NSData 解析为这样的结构,我应该为我的变量(动作)使用什么类型?
unsigned char aBuffer[8];
[data getBytes:aBuffer length:8];
试图以这种方式进行小测试,但是 NSLog 打印出带有奇怪符号的缓冲区,而不是字节值。
【问题讨论】:
-
好吧,“解析”是什么意思?在这种情况下,它并不完全有意义。你为什么不直接从
[data bytes] + offset * 8复制8个字节呢? -
数据使用什么编码?它可能返回 4 个 unichar 字符而不是 8 个 ASCII 字符。您还应该告诉我们结构的定义,您提供的那个不清楚。
-
数据没有编码。是原始数据。如果我能以某种方式将这些数据转换为像 NSString 一样,那就太好了。 H2CO3 你能写一个关于如何做到这一点的简单例子,或者指出我在哪里可以学到这个。因为目前这对我来说是一片黑暗的森林,没有光。
-
@Datenshi 你用过
printf()吗?如果没有,您是否尝试过阅读和理解NSData的文档?我不这么认为...... -
是的,我都试过了,你的评论让我觉得有点愚蠢。您的回答确实对我有所帮助,这正是我所要求的,谢谢您的宝贵时间。很抱歉自己不够聪明,无法在没有帮助的情况下掌握一切:)
标签: objective-c hex nsdata