gpt4 book ai didi

iphone - float* array 到 NSArray, iOS

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:27 25 4
gpt4 key购买 nike

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

有没有比遍历 float* 并将每个条目添加到 NSArray 更好的方法?

我有:

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

我想避免做这样的事情:

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

是否有一些方便/更有效的方法可以将大量 float 复制到 NSArray 中?

问候,

欧文

最佳答案

你有两个问题:首先,你不能在 NSArray 中存储一个 float,因为 NSArray 只会保存 objective-c 对象。然后,您需要将其包装在一个对象中,可能是 NSNumberNSValue

至于你原来的问题,因为无论如何你都必须创建对象,所以没有更好的方法。我推荐 for 循环:

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

请记住,number 将被自动释放。如果您要处理很多的数字,内存管理可能很快就会失控,因此您可以改为这样做:

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

关于iphone - float* array 到 NSArray, iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4888163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com