如何从 UnsafeBufferPointer 创建数组而不进行复制?

Vat*_*not 7 memory arrays buffer swift swift2

我处于一个棘手的情况,我有一个由 表示的非常大的内存UnsafeBufferPointer,并且我需要将其表示为Array。现在,Swift 标准库提供了一个初始化程序,可以从任何给定序列中复制元素,但它无法直接提供底层存储。

有什么方法可以将 an '投射'UnsafeBufferPointer到 anArray同时避免复制吗?

use*_*734 0

struct UnsafeBufferPointer<Element> { ... }
Run Code Online (Sandbox Code Playgroud)

指向连续存储在内存中的元素缓冲区的非拥有指针,向底层元素提供 Collection 接口。

答案是否定的,这是不可能的。

init(start: UnsafePointer<Element>, count: Int)
Run Code Online (Sandbox Code Playgroud)

在从 start 开始的连续 Element 实例上构造一个 UnsafePointer 。

构造函数不会在任何地方复制任何内容。构造函数不创建任何内存分配