Я только что понял, что потерял 30 минут поиска в справочнике по классу NSData Xcode, как это сделать в objc (извините, я объясняю это в C как на единственном языке, который приходит, не задумываясь):
#define MAX_SIZE_BUFFER 500
byte *ptr;
ptr = malloc(MAX_SIZE_BUFFER * sizeof(byte));
memset(ptr, 0, MAX_SIZE_BUFFER);
Я начал кодировать, как это, но так и не узнал, как инициализировать MAX_SIZE_BUFFER и умно установить все байты в 0:
#define MAX_SIZE_BUFFER 500
NSData *ptr
ptr = [[[NSData] alloc] init]; // impossible to specify MAX_SIZE_BUFFER in the allocation.
Итак, я сказал себе, давайте использовать метод класса, такой как:
+ data
+ dataWithBytes:length:
+ dataWithBytesNoCopy:length:
+ dataWithBytesNoCopy:length:freeWhenDone:
+ dataWithContentsOfFile:
+ dataWithContentsOfFile:options:error:
+ dataWithContentsOfMappedFile:
+ dataWithContentsOfURL:
+ dataWithContentsOfURL:options:error:
+ dataWithData:
но ни один из них не позволяет выполнить ассигнование и пустое инициализирование одинаково.
Например: + dataWithBytes: length: требует создания альтернативного буфера C и предоставления в качестве параметра методу.
Должен ли я считать себя идиотом или плохим программистом?
Серьезно, у вас есть умный и простой метод?
Apple92