Quelle est la meilleure façon de mettre en œuvre un ByteBuffer de Java comme dans Obj-C?

StackOverflow https://stackoverflow.com/questions/678069

  •  21-08-2019
  •  | 
  •  

Question

Je suis en train de construire une application pour l'iPhone, bien que je suis complètement nouveau pour Obj-C. Pour un problème que je voudrais utiliser un ByteBuffer en Java, mais je ne vois pas de classe appropriée dans la documentation d'Apple. Je dois donc probablement mettre en œuvre seul.

Ma question est, comment faire le mieux:

  • Y at-il une classe similaire dans Obj-C? (Ce serait la meilleure solution;))
  • Dois-je le faire en utilisant des classes Obj-C comme NSData?
  • Ou devrais-je rester avec le code C clair?
Était-ce utile?

La solution

Vous voulez probablement NSMutableData.

Autres conseils

Si je me souviens java.nio.ByteBuffer (de travailler avec Java beaucoup il y a des lunes) est que met en oeuvre séquentielle ByteBuffer lecture / écriture à un tableau d'octets. Ceci est analogue à un NSInputStream soutenu par un NSData (pour l'entrée):

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);
}

Vous pouvez faire quelque chose de similaire avec une écriture à une NSOutputStream <=>.

J'ai une question similaire. ilya a mon ici avec sa réponse .

  

Mon objectif est de mettre en œuvre une version Obj-C entièrement fonctionnelle   java.nio.ByteBuffer. Je voulais juste savoir ce que je devrais utiliser pour obtenir   il

Ce sera votre classe personnalisée.

Pour mon cas, je pense et NSInputStream devrait être utilisé NSOutputStream. Bien sûr pas que la façon dont est NSMutableData la acceptée et la plupart du temps jusqu'à voté réponse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top