NSMutableArray. ¿Cuál es la forma más rápida de convertirlo en una matriz C simple?
-
06-07-2019 - |
Pregunta
Me gusta la conveniencia de NSMutableArray, pero a veces solo necesita desplegarse en buenos arreglos en C ole. Como cuando está alimentando matrices de vértices intercaladas a OpenGL.
¿Cuál es la forma más rápida de copiar el contenido de un NSMutableArray a una matriz en C?
Sí, me doy cuenta de que este poco de barajado introduce ineficiencia, pero me gustaría ver si puedo escabullirme con este enfoque sin tener un impacto en la velocidad de fotogramas.
Saludos, Doug
Solución
de la lista de correo de cocoabuilder
id *buffer = malloc(numberOf_ItemsIWant_ToFetch * sizeof(id));
[myArray getObjects:buffer range:rangeOfItems]
Otros consejos
Ver - [NSArray getObjects:]
. Simplemente dele un búfer del tamaño apropiado y NSArray llenará el búfer con su contenido. NSMutableArray es una subclase de NSArray, por lo que responde a todos los mismos métodos.
NSMutableArray *arrayOfThings;
Element elements[arrayOfThings.count+1];
for (int i=0;i<arrayOfThings.count;i++)
{
elements[i] = [arrayOfThings objectAtIndex:i];
}
O algo similar. No veo ninguna manera fácil de hacer esto en los documentos de Apple.
int i=0;
foreach(YourClass *obj in array)
{
carray[i++] = [obj yourMethodToConvertToCType];
}