¿Cuál es la mejor manera de implementar un ByteBuffer similar a Java en Obj-C?
-
21-08-2019 - |
Pregunta
Estoy intentando crear una aplicación para iPhone, aunque soy completamente nuevo en Obj-C.Para un problema, usaría ByteBuffer en Java, pero no veo ninguna clase apropiada en la documentación de Apple.Así que probablemente tendré que implementarlo por mi cuenta.
Mi pregunta es cómo hacerlo mejor:
- ¿Existe una clase similar en Obj-C?(Esa sería la mejor solución;))
- ¿Debo hacerlo usando clases Obj-C como NSData?
- ¿O debería quedarme con el código C simple?
Solución
Es posible que desee NSMutableData.
Otros consejos
Mi recuerdo de java.nio.ByteBuffer
(de trabajar con Java hace muchas lunas) es que ByteBuffer
implementa lecturas secuenciales / escribe a una matriz de bytes. Esto es análogo a un NSInputStream
respaldado por una NSData
(para entrada):
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);
}
Puede hacer algo similar con un NSOutputStream
escribir en un <=>.
Tengo una pregunta similar. Ilya me señaló aquí con su respuesta. .
Mi objetivo es implementar una versión OBJ-C completamente funcional de Java.nio.bytebuffer.Solo quería saber qué debería usar para llegar allí
Esa será tu clase personalizada.
Para mi caso creo NSInputStream
y NSOutputStream
debería ser usado.seguro que no NSMutableData
como cómo es la respuesta aceptada y mayoritariamente votada.