float * array a NSArray, iOS

Tengo una matriz de puntero flotante y me gustaría convertirla en una NSArray.

¿Hay una forma mejor de hacerlo que recorrer a través del flotador * y agregar cada input al NSArray?

Yo tengo:

float* data = new float[elements]; fill up data from binary ifstream 

Quiero evitar hacer algo como:

 NSMutableArray *mutableArray = [NSMutableArray arrayWithCapacity:elements]; for (int i=0;i<elements;i++) { [mutableArray addObject:[NSNumber numberWithFloat:data[i]]]; } NSArray *array = [NSArray arrayWithArray:array]; 

¿Hay alguna práctica / método más eficiente para copyr una gran cantidad de flotadores en un NSArray?

Saludos,

Owen

Tienes dos problemas: primero, no puedes almacenar un float en un NSArray , ya que NSArray s solo tendrá objects Objective-C. Tendrá que envolverse en un object, probablemente NSNumber o NSValue .

En cuanto a su pregunta original, ya que tiene que crear los objects de todos modos, no hay un método mejor. Yo recomendaría el ciclo for :

 for (int i = 0; i < elements; i++) { NSNumber *number = [NSNumber numberWithFloat:floatArray[i]]; [myArray addObject:number]; } 

Tenga en count que ese number se autorizará. Si está lidiando con muchos numbers, eso puede irse de las manos bastante rápido con la administración de la memory, por lo que puede hacer esto en su lugar:

 for (int i = 0; i < elements; i++) { NSNumber *number = [[NSNumber alloc] initWithFloat:floatArray[i]]; [myArray addObject:number]; [number release]; }