浮动*数组到NSArray,iOS

Owe*_*wen 3 arrays iphone floating-point nsarray ios

我有一个浮点指针数组,我想将其转换为NSArray.

有没有更好的方法来迭代浮点*并将每个条目添加到NSArray?

我有:

float* data = new float[elements];
fill up data from binary ifstream
Run Code Online (Sandbox Code Playgroud)

我想避免做类似的事情:

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

是否有一些方便/更有效的方法将大块浮动数据复制到NSArray中?

问候,

欧文

Jef*_*ley 5

你有两个问题:第一,你不能存储floatNSArray,因为NSArray△只能持有Objective-C对象.你可能需要在一个对象中包裹,可能NSNumber还是NSValue.

至于你原来的问题,既然你必须创建对象,那么没有更好的方法.我推荐for循环:

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

请记住,这number将是自动释放.如果您正在处理大量数字,那么内存管理可能会很快失控,所以您可能会这样做:

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