2009-06-18 3 views
2

Ich mag die Bequemlichkeit von NSMutableArray, aber manchmal müssen Sie nur auf gute ole C-Arrays ablegen. Wie wenn Sie verschachtelte Vertex-Arrays an OpenGL übergeben.NSMutableArray. Was ist der schnellste Weg, um es in eine einfache ole C-Array zu konvertieren

Was ist der schnellste Weg, den Inhalt eines NSMutableArray in ein C-Array zu kopieren?

Ja, mir ist klar, dass dieses Bit-Shuffling Ineffizienzen einführt, aber ich würde gerne sehen, ob ich mit dieser Herangehensweise vorbeischleichen kann, ohne die Bildrate zu drücken.

Cheers, Doug

Antwort

1
NSMutableArray *arrayOfThings; 
Element elements[arrayOfThings.count+1]; 

for (int i=0;i<arrayOfThings.count;i++) 
{ 
    elements[i] = [arrayOfThings objectAtIndex:i]; 
} 

Oder etwas Ähnliches. Ich sehe keine einfache Möglichkeit, dies in den Apple-Dokumenten zu tun.

6

Siehe -[NSArray getObjects:]. Geben Sie einfach einen Puffer der entsprechenden Größe und NSArray füllt den Puffer mit seinem Inhalt. NSMutableArray ist eine Unterklasse von NSArray und reagiert daher auf alle die gleichen Methoden.

1
int i=0; 
foreach(YourClass *obj in array) 
{ 
    carray[i++] = [obj yourMethodToConvertToCType]; 
} 
+0

Danke für all die Bande Antworten. Super schnell. Super hilfreich. – dugla