Я пытаюсь создать приложение для iPhone, хотя я совершенно новичок в Obj-C. Для одной проблемы я бы использовал ByteBuffer в Java, но я не вижу подходящего класса в документации Apple. Поэтому я, вероятно, должен реализовать это самостоятельно.
Мой вопрос: как это сделать лучше всего:
Вероятно, вы хотите получить NSMutableData.
Мое воспоминание о java.nio.ByteBuffer
(от работы с Java много лет назад) заключается в том, что ByteBuffer
реализует последовательные чтения/записи в массив байтов. Это аналогично NSInputStream
, поддерживаемому NSData
(для ввода):
NSInputStream *inputStream = [NSInputStream inputStreamwithData:myData]; //assuming myData is NSData*
float myFloat;
if([inputStream hasBytesAvailable]) { // NO if you've already read to the end of myData
NSInteger bytesRead = [inputStream read:&myFloat maxLength:sizeof(myFloat)];
NSAssert(bytesRead == sizeof(myFloat);
}
Вы можете сделать что-то подобное с записью NSOutputStream
в NSData
.
У меня есть аналогичный вопрос. Илья указал мне здесь свой ответ.
Моя цель - реализовать полностью функциональную версию Obj-C java.nio.ByteBuffer. Просто хотел знать, что я должен использовать, чтобы получить есть
Это будет ваш пользовательский класс.
В моем случае я думаю, что нужно использовать NSInputStream
и NSOutputStream
. Наверняка не NSMutableData
, как принято и чаще всего проголосовали.