Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa touch 使用NSMutableData在内存中保留连续空间_Cocoa Touch_Nsdata_Nsmutabledata_Memory Layout - Fatal编程技术网

Cocoa touch 使用NSMutableData在内存中保留连续空间

Cocoa touch 使用NSMutableData在内存中保留连续空间,cocoa-touch,nsdata,nsmutabledata,memory-layout,Cocoa Touch,Nsdata,Nsmutabledata,Memory Layout,如何强制NSMutableData在同一节中保留连续内存?我有相当数量的数据逐件到达,性能不令人满意。我的数据的总大小将保持不变。NSMutableData应连续存储所有数据。在内部,它使用一个用realloc调整大小的“弹性”缓冲区。您可以使用[NSMutableData dataWithLength:]创建 如果大小不变,为什么不使用NSData 还有,为什么您要担心NSMutableData性能。instruments profile是否显示性能问题?使用dataWithCapacity:

如何强制
NSMutableData
在同一节中保留连续内存?我有相当数量的数据逐件到达,性能不令人满意。我的数据的总大小将保持不变。

NSMutableData
应连续存储所有数据。在内部,它使用一个用realloc调整大小的“弹性”缓冲区。您可以使用
[NSMutableData dataWithLength:]创建

如果大小不变,为什么不使用
NSData


还有,为什么您要担心
NSMutableData
性能。instruments profile是否显示性能问题?

使用
dataWithCapacity:
initWithCapacity:
创建
NSMutableData
对象。谢谢@rmaddy,我将使用initWithCapacity。您好@Justin,好的,我会再解释一下,缓冲区大小是恒定的,但我会按部分写入,数据来自外部附件,因此每次收到数据时,我都需要将其复制到rigth位置。我担心性能,因为我从附件接收到64KB的信息,需要3秒以上的时间(对我来说这是很多),所以我正在尝试优化代码。@JoseAlbertoDiaz使用memcpy([data mutableBytes]+offset,source,size)写入数据;或者更友好的替代品bytesinrange:withBytes: