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

Does [NSData getBytes: length:] change position in buffer?

我有一些具有 2 个字节不同值的 NSData 实例。

调用 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 实例中的第一个字节相同,或者第一个调用会提前下一个调用从第二个字节开始读取?

谢谢!

不,不是。

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

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