Was ist der beste Weg, um einen Java-ähnlichen ByteBuffer in Obj-C zu implementieren?

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

  •  21-08-2019
  •  | 
  •  

Frage

Ich versuche, eine Anwendung für das iPhone zu bauen, obwohl ich auf Obj-C komplett neu bin. Für ein Problem würde ich einen ByteBuffer in Java verwenden, aber ich habe keine entsprechende Klasse in Apples Dokumentation. Also habe ich es wahrscheinlich umsetzen müssen auf eigene Faust.

Meine Frage ist, wie es am besten zu tun:

  • Gibt es eine ähnliche Klasse in Obj-C? (Das wäre die beste Lösung;))
  • Sollte ich es durch die Verwendung Obj-C-Klassen wie NSData?
  • Oder soll ich bleiben mit einfachen C-Code?
War es hilfreich?

Lösung

Sie wollen wahrscheinlich NSMutableData.

Andere Tipps

Meine Erinnerung an java.nio.ByteBuffer (von der Arbeit vor mit Java vielen Monden) ist, dass ByteBuffer implementiert sequentielle liest / in ein Array von Bytes schreibt. Dies ist analog zu einem NSInputStream durch eine NSData gesichert (für Eingang):

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

Sie können etwas Ähnliches tun mit einem NSOutputStream zu einem NSData zu schreiben.

Ich habe eine ähnliche Frage. ilya zeigte meine hier mit seiner Antwort .

  

Mein Ziel ist es, eine voll funktionsfähige Obj-C-Version zu implementieren   java.nio.ByteBuffer. erhalten wollte nur wissen, was ich pflege sollte   dort

Das wird Ihre benutzerdefinierte Klasse sein.

Für meinen Fall denke ich NSInputStream und NSOutputStream verwendet werden sollen. Sicherlich nicht NSMutableData als wie die akzeptiert und meist auf Antwort gestimmt hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top