Was ist der beste Weg, um einen Java-ähnlichen ByteBuffer in Obj-C zu implementieren?
-
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?
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.