在Obj-C中实现类似Java的ByteBuffer的最佳方法是什么?

Kor*_*tor 3 java porting objective-c

我正在尝试为iPhone构建一个应用程序,尽管我是Obj-C的新手.对于一个问题,我在Java中使用ByteBuffer,但我在Apple的文档中没有看到任何合适的类.所以我可能必须自己实现它.

我的问题是,如何做到最好:

  • Obj-C中有类似的类吗?(这将是最好的解决方案;))
  • 我应该使用像NSData这样的Obj-C类吗?
  • 或者我应该使用普通的C代码?

Mar*_*bst 8

你可能想要NSMutableData.


Bar*_*ark 6

我的回忆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);
}
Run Code Online (Sandbox Code Playgroud)

你可以通过NSOutputStream写作来做类似的事情NSData.