目前正在研究快速指针。
UnsafePointer
和UnsafeMutablePointer
提供指向字节的指针。通过使用指针运算,您可以访问其余的字节。
使用UnsafeMutableBufferPointer
可以完成类似的事情,它有一个endIndex参数。那么在访问UnsafeMutableBufferPointer
中的字节时使用UnsafeMutablePointer
优于NSData
的优势/区别是什么?
答案 0 :(得分:2)
UnsafeMutablePointer<T>
旨在访问T
类型的单个元素。其界面设计用于访问单个标量值。
UnsafeMutableBufferPointer<T>
旨在访问存储在连续内存块中的一组T
类型的元素。其界面旨在访问范围的各个元素,并将整个集合视为一个单元(例如generate
方法)。
如果访问NSData
内的字节,仅UnsafePointer
是不够的,因为您需要知道数据的长度。相比之下,单个UnsafeBufferPointer
足以表示数据,因为它提供了初始位置和元素数量。