Domanda

Mi piace la comodità di NSMutableArray, ma a volte è sufficiente passare ai buoni C-array. Come quando si alimentano array di vertici interlacciati su OpenGL.

Qual è il modo più veloce per copiare il contenuto di un NSMutableArray in un array C?

Yah, mi rendo conto che questo po 'di mescolanza introduce inefficienza, ma mi piacerebbe vedere se riesco ad intrufolarmi con questo approccio senza avere un colpo nel frame rate.

Saluti, Doug

È stato utile?

Soluzione

dalla mailing list di cocoabuilder

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

Altri suggerimenti

Vedi - [NSArray getObjects:] . Basta dargli un buffer della dimensione appropriata e NSArray riempirà il buffer con il suo contenuto. NSMutableArray è una sottoclasse di NSArray, quindi risponde a tutti gli stessi metodi.

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

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

O qualcosa di simile. Non vedo alcun modo semplice per farlo nei documenti di Apple.

int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top