2016-08-04 9 views
0

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.

Antwort

0

Ich habe mir die falschen Werte angesehen, ich hätte die Erinnerung an data1 statt *data1 suchen sollen.