swift中的指针:UnsafeMutableBufferPointer的目的

时间:2015-07-19 12:28:45

标签: swift pointers

目前正在研究快速指针。

UnsafePointerUnsafeMutablePointer提供指向字节的指针。通过使用指针运算,您可以访问其余的字节。

使用UnsafeMutableBufferPointer可以完成类似的事情,它有一个endIndex参数。那么在访问UnsafeMutableBufferPointer中的字节时使用UnsafeMutablePointer优于NSData的优势/区别是什么?

1 个答案:

答案 0 :(得分:2)

UnsafeMutablePointer<T>旨在访问T类型的单个元素。其界面设计用于访问单个标量值。

另一方面,

UnsafeMutableBufferPointer<T>旨在访问存储在连续内存块中的一组T类型的元素。其界面旨在访问范围的各个元素,并将整个集合视为一个单元(例如generate方法)。

如果访问NSData内的字节,仅UnsafePointer是不够的,因为您需要知道数据的长度。相比之下,单个UnsafeBufferPointer足以表示数据,因为它提供了初始位置和元素数量。