NSData & NSMutabledata. Как я могу прочитать из тела объекта данных? - PullRequest
1 голос
/ 08 октября 2009

У меня есть экземпляр NSMutableData lllooonnnggg. Я хочу передать непересекающиеся поддиапазоны этих данных другим объектам. Я просмотрел документы NSData / NSMutableData и не совсем понял, как это сделать.

Так, например, NSMutableData replaceBytesInRange: withBytes: выглядит идеально, но мне нужен параметр withBytes: для указания местоположения за пределами заголовка потока байтов, возвращаемого [mySourceHumungousData bytes].

Я могу получить взлом и перейти на чистый C и сделать это, но я бы предпочел не делать этого.

Ура, Дуг

Ответы [ 2 ]

3 голосов
/ 08 октября 2009

Попробуйте subdataWithRange: на экземпляре NSData. Это должно позволить вам разделить ваши данные так, как вы хотите, прежде чем вы замените нужные байты в вашем NSMutableData.

1 голос
/ 08 октября 2009

Как и предполагалось, вы можете использовать сообщение subdataWithRange: или getBytes:range:, чтобы скопировать в буфер и затем передать необработанный скопированный буфер. Любой из них достиг бы того же самого результата. Но чтобы избежать временного копирования данных, вы можете просто перейти в «C-стиль» и привести к char *, увеличить [n] байтов туда, куда вы хотите, и передать это.

...