我正在尝试从PDF中的“FontFile2”构建CMap。
我知道BigEndian存储在NSData对象中的字节数。 我想将前4个字节读作原始数据。 然后我想将以下8个字节读作4个无符号短路。
然后我想将以下16个字节读作4字节字符串,后跟3个无符号长整数。 然后可能还有几个4字节的字符串,后跟三个无符号长整数。
修改的
NSData* subdata = [stream subdataWithRange:NSMakeRange(0, 4)];
const unsigned char *bytes = [subdata bytes];
int test = *(int*)bytes;
我尝试将前4个字节作为简短读取失败。 似乎将数据分解为一堆子数据对象过于复杂。他们必须更容易......
由于
答案 0 :(得分:1)
通常,如果要读取字节,则应创建NSInteger
来存储读取字节的位置。
例如,这是您阅读short
:
@property NSInteger position;
NSData *yourData;
short extractedShort;
[yourData getBytes:&temp range:NSMakeRange(self.position, sizeof(extractedShort))];
self.position += sizeof(extractedShort);
阅读int
,NSString
,float
,long
...值相似