Одно дополнение к ответу грабителя и его комментарию:
@ Dabbu NSData и NSMutableData хранят свое содержимое как одно смежное
массив байтов.
Следует помнить, что это поведение было изменено в iOS7: теперь NSData
/ NSMutableData
не гарантирует сохранение содержимого как одного непрерывного массива. Может храниться в виде нескольких фрагментов.
Поэтому, когда вы вызываете bytes
/ mutableBytes
, они копируют и сглаживают содержимое в один непрерывный массив байтов, если это необходимо, а затем возвращают указатель на этот непрерывный фрагмент.
В зависимости от того, что вы пытаетесь сделать, это может привести к неожиданному снижению производительности или чрезмерному потреблению памяти для больших буферов.