NSMutableArray. Qual é o caminho mais rápido para convertê-lo em um C-array ole planície

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

Pergunta

I como a conveniência de NSMutableArray mas às vezes você só precisa cair para boas ole C-matrizes. Como quando você está alimentando matrizes vértice intercalados para OpenGL.

O que é a maneira mais rápida de copiar o conteúdo de um NSMutableArray para um array C?

Yah, eu percebo isso pouco baralhar introduz ineficiência, mas eu gostaria de ver se eu posso esgueirar por com esta abordagem sem tomar um hit na taxa de quadros.

Cheers, Doug

Foi útil?

Solução

da lista de discussão cocoabuilder

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

Outras dicas

Veja -[NSArray getObjects:] . Basta dar-lhe um buffer de tamanho apropriado e NSArray vai preencher o buffer com o seu conteúdo. NSMutableArray é uma subclasse de NSArray, por isso responde a todos os mesmos métodos.

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

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

Ou algo similar. Eu não vejo nenhuma maneira fácil de fazer isso nos docs Apple.

int i=0;
foreach(YourClass *obj in array)
{
   carray[i++] = [obj yourMethodToConvertToCType];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top