Objective c 用字节填充NSMutableData会导致长度为零

Objective c 用字节填充NSMutableData会导致长度为零,objective-c,cocoa,nsmutabledata,Objective C,Cocoa,Nsmutabledata,设置NSMutableData时,如下所示: NSMutableData* mRgb = [NSMutableData dataWithCapacity:3]; ((char*)[mRgb mutableBytes])[0] = 10; ((char*)[mRgb mutableBytes])[1] = 90; ((char*)[mRgb mutableBytes])[2] = 160; 我的问题是长度仍然是0: int len = [mRgb length]; // Is 0! 为什么会这

设置NSMutableData时,如下所示:

NSMutableData* mRgb = [NSMutableData dataWithCapacity:3];
((char*)[mRgb mutableBytes])[0] = 10;
((char*)[mRgb mutableBytes])[1] = 90;
((char*)[mRgb mutableBytes])[2] = 160;
我的问题是长度仍然是0:

int len = [mRgb length]; // Is 0!
为什么会这样?

只是在内存中保留了那么多字节,但这并不意味着数据的大小仍然如此

这方面的一个例子是从互联网接收图像时。在前面,您不知道图像会有多大,所以只需创建一个容量为1MB的数据对象,这样您就不需要在接收更多数据时不断调整数据大小

您要使用的是方法,它创建一个从一开始就包含这么多字节的数据对象。或者,您可以调用以更改正在使用的数据量。

只是在内存中保留了那么多字节,并不意味着数据的大小仍然如此

这方面的一个例子是从互联网接收图像时。在前面,您不知道图像会有多大,所以只需创建一个容量为1MB的数据对象,这样您就不需要在接收更多数据时不断调整数据大小

您要使用的是方法,它创建一个从一开始就包含这么多字节的数据对象。或者您可以调用以更改正在使用的数据量。

“…不一定立即分配请求的内存。可变数据对象会根据需要分配额外的内存…”

使用,它分配请求的数量并将其归零。

“…不一定立即分配请求的内存。可变数据对象根据需要分配额外的内存…”

使用,它将分配请求的金额并将其归零