Obj-C从二进制文件中读取Little Endian? (xcode的)

时间:2011-11-09 16:06:07

标签: iphone objective-c xcode

我正在寻找一种从二进制文件中获取int值的方法。所以,让我说我有这个文件“myfile.dat”,从我的电脑里我存储了很多东西...... 现在我需要从我的iPhone中读取该文件并显示数据......

在“myfile.dat”上我有这个(二进制文件,所有的int都是小端): 0-12:签名字符串 13-16:一个int数(注意长度= 4)

所以使用NSData我知道我可以读取从pos 13到pos 16并获得那些字节...我可以正确获得第一个0-12字符串,但我无法读取pos 13-16并将其转换为int值在Obj-C ....;(

我有类似的东西:

unsigned char bytes[length];
[_data getBytes:bytes range:NSMakeRange(offset, length)];
int32_t elem = OSReadLittleInt32(bytes, 0);

现在,对于Obj-C和C / C ++,我是一个新手...我一生都在使用C#(悲伤)......

有人可以帮忙吗?提前致谢!

1 个答案:

答案 0 :(得分:4)

尝试一下:

unsigned long bytes;
[_data getBytes: &bytes length: sizeof(unsigned long)];

NSLog(@"%i", NSSwapLittleLongToHost(bytes));