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中?
问候,
欧文
你有两个问题:第一,你不能存储float在NSArray,因为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)