iphone - float* array 到 NSArray, iOS

标签 iphone ios arrays floating-point nsarray

我有一个浮点指针数组,我想将它转换为 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/

相关文章:

ios - UIBezierPath行程不完整

iphone - 更改 xcode 中的占位符文本

iphone - Sqlite 的 iOS-5 中的性能问题

ios - 尝试使用协议(protocol)使 View 可拖动时应用程序崩溃

php - 使用数字索引从关联数组中获取键和值

javascript - JavaScript 中的递归循环

C++ 数组类定义和实现,未在范围内声明?

ios - XCode - Swift - 应用程序传输安全已阻止明文 HTTP (http ://) error

iphone - 我可以在 iPhone 应用程序中使用 Google Maps API(Places API)来查找我附近的位置吗?

ios - 未知的崩溃原因(附有 CrashReport)SIGTRAP。 AF网络?