Question

J'aime la commodité de NSMutableArray, mais parfois, il vous suffit de tomber dans de bons vieux C-array. Comme lorsque vous alimentez OpenGL avec des tableaux de vertex entrelacés.

Quel est le moyen le plus rapide de copier le contenu d'un NSMutableArray dans un tableau C?

Oui, je me rends compte que ce remaniement introduit de l’inefficacité, mais j’aimerais voir si je peux me faufiler avec cette approche sans subir de coup dans la cadence.

Salut, Doug

Était-ce utile?

La solution

de la liste de diffusion cocoabuilder

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

Autres conseils

Voir - [NSArray getObjects:] . Donnez-lui simplement un tampon de la taille appropriée et NSArray remplira le tampon avec son contenu. NSMutableArray est une sous-classe de NSArray, il répond donc à toutes les mêmes méthodes.

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

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

Ou quelque chose de similaire. Je ne vois pas de moyen facile de le faire dans les documents Apple.

int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top