Разделить объекты NSData на другие объекты NSData заданного размера

У меня есть объект NSData размером около 1000 КБ. Теперь я хочу передать это через Bluetooth. Было бы лучше, если бы у меня было, скажем, 10 объектов размером 100 кБ. Мне приходит в голову, что я должен использовать метод -subdataWithRange: NSData.

Я не работал с NSRange. Ну, я знаю, как это работает, но я не могу понять, как читать из заданного местоположения с длиной: «до конца файла» … Я понятия не имею, как это сделать.

Некоторый код о том, как разделить его на несколько объектов NSData размером 100 КБ, действительно поможет мне здесь. (это, вероятно, связано с методом -length чтобы увидеть, сколько объектов должно быть сделано.?)

Заранее спасибо.

Следующий fragment кода выполняет fragmentацию без копирования данных:

 NSData* myBlob; NSUInteger length = [myBlob length]; NSUInteger chunkSize = 100 * 1024; NSUInteger offset = 0; do { NSUInteger thisChunkSize = length - offset > chunkSize ? chunkSize : length - offset; NSData* chunk = [NSData dataWithBytesNoCopy:(char *)[myBlob bytes] + offset length:thisChunkSize freeWhenDone:NO]; offset += thisChunkSize; // do something with chunk } while (offset < length); 

Sidenote: я должен добавить, что объекты chunk нельзя безопасно использовать после того, как myBlob был выпущен (или иным образом изменен). chunk fragmentов указывают на память, принадлежащую myBlob , поэтому не myBlob их, если вы не сохраните myBlob .

  • Как эффективно анализировать CSV-файл в Perl?
  • Regex разделите строку, но сохраните разделители
  • Java String.split () иногда дает пустые строки
  • Разделение строки Mysql
  • Разделить строку с разделителями на C
  • Извлечение пар слов с помощью String.split ()
  • Разделить строку на массив в Bash
  • Разделить строку на подстроки равной длины в Java
  • Как разбить фрейм данных?
  • Разделить строку на массив символов
  • Java: как разбить строку на несколько символов?
  • Давайте будем гением компьютера.