Ich schreibe ein Objective-C-Programm, das sich mit Low-Level-Bildspeicher beschäftigt. Ich verwende ANSI-C-Strukturen für meine Datenspeicherung - Full-blast-Objekte scheinen übertrieben zu sein, da die Daten, die ich speichere, 100% Daten sind, ohne Methoden, um mit diesen Daten zu arbeiten. Insbesondere schreibe ich einen anpassbaren Posterisierungsalgorithmus, der auf einer Reihe von Farben beruht - Hier wird es schwierig. Ich speichere meine Farben als Strukturen von drei Floats und ein Integer-Flag (speziell für den Posterisierungsalgorithmus). Alles läuft gut, bis auf eine Sache ...
[aktuelle Frage]
Ich kann nicht herausfinden, wie man einem NSMutableArray Zeiger hinzufügt! Ich weiß, wie man ein Objekt hinzufügt, aber das Hinzufügen eines Zeigers zu einer Struktur scheint schwieriger zu sein - ich möchte nicht, dass NSMutableArray meinen Zeiger dereferenziert und die Struktur als eine Art merkwürdiges Objekt behandelt. Ich möchte, dass NSMutableArray den Zeiger selbst zur Auflistung hinzufügt. Wie gehe ich dabei vor?
Vielen Dank im Voraus,
G
Dafür gibt es eine Klasse: NSPointerArray
. Siehe Apples Dokumente hier . Für willkürliche Zeiger werden Sie wahrscheinlich die Optionen NSPointerFunctionsOpaqueMemory
und NSPointerFunctionsOpaquePersonality
verwenden wollen.
Wenn NSPointerArray
nicht verfügbar ist (z. B. wenn Sie für iOS entwickeln), können Sie Ihre Zeiger mit -[NSValue valueWithPointer:]
umbrechen, solange der Overhead von wrapping & amp; Auspacken erweist sich nicht als zu langsam.
Wenn ein NSMutableArray
wirklich das ist, was Sie wollen, können Sie diesen Ansatz verwenden:
Sie möchten jedoch NSObject
s nicht dort einfügen - sie werden nicht beibehalten.
Bei diesem Ansatz können die Elemente Ihres CF / NS-Arrays Zeiger oder beliebige Grundwerte sein, deren Größe einem Zeiger entspricht.
Tags und Links objective-c pointers nsmutablearray