swift中的指针:UnsafemeutableBufferPointer的用途
目前正在研究swift指针swift中的指针:UnsafemeutableBufferPointer的用途,swift,pointers,Swift,Pointers,目前正在研究swift指针 UnsafePointer和unsafemeutablepointer提供指向字节的指针。通过使用指针算法,您可以访问剩余的字节 类似的操作可以通过unsafemtablebufferpointer完成,该指针具有endIndex参数。因此,当访问例如NSData中的字节时,使用UnsafemtableBufferPointer与UnsafemtablePointer相比,有什么优点/区别呢?UnsafemtablePointer是为访问类型为T的单个元素而设计的。其
UnsafePointer
和unsafemeutablepointer
提供指向字节的指针。通过使用指针算法,您可以访问剩余的字节
类似的操作可以通过
unsafemtablebufferpointer
完成,该指针具有endIndex参数。因此,当访问例如NSData中的字节时,使用UnsafemtableBufferPointer
与UnsafemtablePointer
相比,有什么优点/区别呢?UnsafemtablePointer
是为访问类型为T
的单个元素而设计的。其接口设计用于访问单个标量值
另一方面,unsafemtablebufferpointer
设计用于访问存储在连续内存块中的T
类型的一组元素。它的接口设计用于访问范围的各个元素,也用于将整个集合作为单个单元处理(例如generate
方法)
如果您访问
NSData
中的字节,仅UnsafePointer
是不够的,因为您需要知道数据的长度。相反,一个UnsafeBufferPointer
就足以表示数据,因为它提供了初始位置和元素数。您可以通过调用data.length手动跟踪字节。虽然,现在我想起来了,这里有一个风险。NSData不保证是连续的。