Ich baue ein Multiplayer-Spiel auf dem iPhone und ich muss String-Daten an die anderen Spieler im Spiel senden. Um dies zu tun, muss ich meine NSString * String-Daten irgendwie in ein NSData-Objekt einkapseln. Hier ist ein Beispiel dafür, wie mein Code strukturiert ...iOS-Entwicklung: Wie kann ich eine Zeichenfolge in einem NSData-Objekt kapseln?
typedef struct
{
PACKETTYPE packetType;
??? stringToSend; //<---not sure how to store this
} StringPacket;
StringPacket msg;
msg.packetType = STRING_PACKET;
msg.stringToSend = ... // <---not sure what to do here
NSData *packet = [NSData dataWithBytes:&msg length:sizeof(StringPacket)];
Also meine Frage ist, ob StringPacket
eine Struktur in meinem Header definiert ist, welche Art sollte die stringToSend
Eigenschaft so sein, dass ich leicht die dataWithBytes
Methode aufrufen kann von NSData
die Paketdaten in einem NSData-Objekt einzukapseln?
Danke für Ihre Weisheit!
danke, nickolay! Ich bin unklar, was Sie unter "Speichern in Paket String Länge", meinen Sie erstellen eine zusätzliche Eigenschaft, die die Länge der Zeichenfolge speichert? Außerdem ist mir unklar, was Sie meinen, indem Sie die NSData anhängen. Wenn es nicht zu viel Arbeit ist, würde es Ihnen etwas ausmachen, ein schnelles Beispiel zu zeigen? Danke noch einmal! – BeachRunnerFred
Ich habe Änderungen an meinem Post hinzugefügt, um die Formatierung zu verbessern, um die Lesbarkeit zu verbessern. –
Danke, Nickolay, das scheint sehr geradlinig. Eine weitere Frage: Wenn die Daten am anderen Ende eintreffen und ich auf die Daten mit der Methode 'Bytes' der NSData-Klasse zugreife, wie kann ich auf diese einzelnen Byte-Blöcke zugreifen, wenn die String-Länge dynamisch ist? – BeachRunnerFred