NSMutableArray. Quel est le moyen le plus rapide de le convertir en C-array uni?
-
06-07-2019 - |
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
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];
}