0

メモリをすばやく事前に割り当ててラップしたいのですNSMutableDataが、ポインターを介してアクセスします。だから私はこれを持っています:

var vertex = UnsafeMutablePointer<Float>.alloc(numberOfVertex * 3)
vertex.initialize(0)
vertexData = NSMutableData(bytesNoCopy: vertex, length: numberOfVertex * 3 * sizeof(Float))

しかし、vertexポインターのアドレスを確認すると、別の値が表示vertexData.bytesされるため、ポインターを使用してインデックスでデータを変更することはできません。これを回避し、メモリ ブロックを 1 つだけにする方法は?

4

1 に答える 1

2

NSMutableDataドキュメントによると、no-copy フラグを実際にそのように使用することはできません。

NSMutableData もこれらのメソッドに応答しますが、バイトはとにかくコピーされ、バッファはすぐに解放されます。

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/BinaryData/Tasks/WorkingBinaryData.html#//apple_ref/doc/uid/20000717-149014

于 2015-09-14T21:32:15.713 に答える