我想快速预分配内存并将其包装在NSMutableData
中,但是可以通过指针访问。
所以我有这个:
var vertex = UnsafeMutablePointer<Float>.alloc(numberOfVertex * 3)
vertex.initialize(0)
vertexData = NSMutableData(bytesNoCopy: vertex, length: numberOfVertex * 3 * sizeof(Float))
但是当我检查vertex
指针的地址时,我看到vertexData.bytes
的值不同,所以据我所知,我不能再使用指针来按索引更改数据了。
如何避免这种情况,只有一个内存块?
答案 0 :(得分:2)
根据文档,您不能将NSMutableData
与no-copy标志实际使用:
NSMutableData也响应这些方法,但字节是 无论如何都要复制并立即释放缓冲区。