Ich versuche, Code zu schreiben, der Pakete zusammensetzt, um über ein Netzwerk zu senden; Ich habe jedoch Probleme mit den zusammengefügten Paketen. Hier einige Code, um meine Situation darstellen:Unterschiedliche Werte im Speicher bei der Verwendung von NSData vs NSMutableData
NSMutableData *data1 = [NSMutableData dataWithLength:3];
NSData * data2 = [[NSData alloc] initWithBytes:(unsigned char[]){0xAA, 0xAA, 0xAA} length:3];
[data1 appendBytes:(unsigned char[]){0xAA, 0xAA, 0xAA} length: 3];
Wenn ich einen Haltepunkt gesetzt und die Werte der Speicherlese für *data1
und *data2
, data1
hat nur Müll Werte in sich, während data2
haben die 0xAA
‚s im Speicher.
Ich schaute auf die Apple-Entwickler-Referenz, schien aber nichts zu finden. Eine interessante Sache, die ich jedoch bemerkte, war, dass die Initialisierung von data1
die Bytes, die ich auch nicht wirklich sehe, auf Null gesetzt haben sollte.
Also frage ich mich, ob es einen offensichtlichen Fehler gibt, den ich in meinem Code mache, oder ein grundlegendes Missverständnis der NSData/MutableData-Objekte, da ich in Objective C ziemlich neu bin? Jede Hilfe wäre willkommen. Vielen Dank!
Edit: Ich bin dumm ... stellt sich heraus, wenn ich auf Speicher von data1
, nicht *data1
schaue, kann ich die Werte finden, die ich anhänge.