iphone NSMutableData字节索引

时间:2011-10-11 11:06:46

标签: iphone

例如,我想通过索引获取NSMutableData实例的值,我该怎么做?我这样做:

Byte *tempByte = (Byte*)malloc(1); 
memcpy(tempByte, [[nsmutabledata subdataWithRange:NSMakeRange(5, 5)] bytes], 1) ;

但我认为这不是一个好方法。 更新: 我已经解决了这个问题。谢谢你...

1 个答案:

答案 0 :(得分:0)

NSData *data = [NSData dataWithContentsOfFile:filePath];
NSUInteger len = [data length];
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [data bytes], len);

此代码将动态地将数组分配到正确的大小(完成后必须释放(byteData))并将字节复制到其中。

如果你想使用固定长度的数组,你也可以使用getBytes:len:如其他人所指示的那样。这样可以避免malloc / free,但是可扩展性较差,更容易出现缓冲区溢出问题,因此我很少使用它。