Kakao Strukturen und NSMutableArray
Ich habe ein NSMutableArray, dass ich versuche, zu speichern und den Zugriff auf bestimmte Strukturen. Wie mache ich das? 'addObject' gibt mir eine Fehlermeldung "Inkompatibler Typ für argument 1 von addObject". Hier ist ein Beispiel ('in', ist ein NSFileHandle, 'array' ist der NSMutableArray):
//Write points
for(int i=0; i<5; i++) {
struct Point p;
buff = [in readDataOfLength:1];
[buff getBytes:&(p.x) length:sizeof(p.x)];
[array addObject:p];
}
//Read points
for(int i=0; i<5; i++) {
struct Point p = [array objectAtIndex:i];
NSLog(@"%i", p.x);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits erwähnt, ist
NSValue
wickeln kann eine Ebene Struktur mit+value:withObjCType:
oder-initWithBytes:objCType:
:Sehen die Zahl und Wert guide weitere Beispiele.
Sind Sie immer Fehler, weil
NSMutableArray
akzeptieren nur Referenzen auf Objekte, so sollten Sie wickeln Sie Ihre Strukturen in einer Klasse:Diese Weise, die Sie übergeben können, Instanzen von
PointClass
.Bearbeiten: wie oben erwähnt und Wie unten NSValue schon stellt diese in einer allgemeineren Weise, so dass Sie gehen sollten mit, dass.
Könnten Sie NSValue, oder in manchen Fällen mag es Sinn machen, ein Wörterbuch statt eines struct.