NSMutableArray. Was ist der schnellste Weg, um es auf eine einfache alte C-Array zu konvertieren

StackOverflow https://stackoverflow.com/questions/1014725

Frage

Ich mag die Bequemlichkeit der NSMutableArray aber manchmal müssen Sie nur bis zu C-Arrays guten ole fallen zu lassen. Wie, wenn Sie verschachtelte Vertex Arrays zu OpenGL einspeisen.

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

Yah, ich weiß, das Bit-Shuffling führt Ineffizienz, aber ich würde gerne sehen, wenn ich, ohne dabei einen Treffer in Framerate mit diesem Ansatz schleicht durch kann.

Cheers, Doug

War es hilfreich?

Lösung

von cocoabuilder Mailingliste

id *buffer = malloc(numberOf_ItemsIWant_ToFetch * sizeof(id));
[myArray getObjects:buffer range:rangeOfItems]

Andere Tipps

Siehe -[NSArray getObjects:] . Probieren Sie es einfach einen Puffer der entsprechenden Größe und NSArray den Puffer mit Inhalt füllen. NSMutableArray ist eine Unterklasse von NSArray, so antwortet er auf alle den gleichen Methoden.

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 der Apple-Dokumentation zu tun.

int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top