use*_*607 4 buffer initialization objective-c nsdata
我刚刚意识到我在Xcode NSData Class参考中丢失了30分钟如何在objc中执行此操作(对不起,我在C中解释这个,因为这是唯一没有考虑太多的语言):
#define MAX_SIZE_BUFFER 500
byte *ptr;
ptr = malloc(MAX_SIZE_BUFFER * sizeof(byte));
memset(ptr, 0, MAX_SIZE_BUFFER);
Run Code Online (Sandbox Code Playgroud)
我开始像这样编码,但从未发现如何初始化MAX_SIZE_BUFFER并以智能方式将所有字节设置为0:
#define MAX_SIZE_BUFFER 500
NSData *ptr
ptr = [[[NSData] alloc] init]; // impossible to specify MAX_SIZE_BUFFER in the allocation.
Run Code Online (Sandbox Code Playgroud)
因此,我告诉自己,让我们使用类方法,如:
+ data
+ dataWithBytes:length:
+ dataWithBytesNoCopy:length:
+ dataWithBytesNoCopy:length:freeWhenDone:
+ dataWithContentsOfFile:
+ dataWithContentsOfFile:options:error:
+ dataWithContentsOfMappedFile:
+ dataWithContentsOfURL:
+ dataWithContentsOfURL:options:error:
+ dataWithData:
Run Code Online (Sandbox Code Playgroud)
但是没有一个能够实现alloc和blank init.
例如:+ dataWithBytes:length:要求创建备用C缓冲区并将其作为方法的参数给出.
我应该认为自己像个白痴,还是像个坏的程序员?
说真的,你有一个聪明而简单的方法吗?
Apple92
NSData是不可变的,因此所有初始化程序都需要缓冲区的内容.你想要的是NSMutableData的initWithLength:
| 归档时间: |
|
| 查看次数: |
10242 次 |
| 最近记录: |