Эквивалент Objective C для байта Java [] - PullRequest
0 голосов
/ 22 ноября 2010

В Java я бы передавал байты как byte [], который также знает его собственную длину.есть ли в Objective C эквивалентный массив?

Я не уверен, но NSArray кажется слишком тяжелым для чего-то подобного, поскольку он может содержать любой тип.

Ответы [ 3 ]

2 голосов
/ 22 ноября 2010

Я думаю, что наиболее близким является NSMutableData и его свойство mutableBytes.Это даст вам массив в стиле C с приложенным счетчиком длины.Единственная небольшая сложность заключается в том, что хотя вы можете читать и изменять записи с помощью mutableBytes, вам нужно использовать appendBytes:length: для добавления дополнительных байтов в конец, если вы хотите увеличить буфер.

0 голосов
/ 22 ноября 2010

Я также думаю, что @Tommy имеет правильный ответ, но также стоит учитывать, что встроенные классы хранения сильно оптимизированы.Если вы не уверены, что производительность будет проблемой, вам будет проще использовать NSMutableArray и отойти только после того, как вы продемонстрировали, что у вас проблемы с производительностью.Если вам нужно сохранить примитивные значения, взгляните на CFMutableArray .

0 голосов
/ 22 ноября 2010

Я думаю, что Томми имеет правильный ответ, но стоит отметить, что вы также можете использовать примитивные типы данных C (то есть char* в данном случае). Когда вещи достигают очень низкого уровня - как это может быть в случае, когда вы говорите об отдельных байтах - избегание некоторых более умных вещей может работать лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...