[NSData getBytes:length:]是否会更改缓冲区中的位置?

时间:2015-04-26 12:41:21

标签: objective-c buffer nsdata

我有一些NSData实例,其中包含2个不同值的字节。

调用getBytes:任何类型(长度,范围......)也会提升缓冲区中的当前位置吗?

示例:

NSData *data = ...; // 2 bytes data
[data getBytes:&whatever1 length:1]; // reading first byte
[data getBytes:&whatever2 length:1]; // reading first OR second byte?

每次getBytes:length:调用的内容是否与NSData实例中的第一个字节相同,或者第一个调用是否会使下一个调用从第二个字节开始读取?

谢谢!

1 个答案:

答案 0 :(得分:2)

不,它没有。

在示例中,它将访问相同的字节(第一个)。

要访问“下一个”字节,您需要使用getBytes:range:但是,就像@ hot-licks所评论的那样,NSData是不可变的,因此不会被修改。