我知道可以使用
在float *
和NSArray(或NSMutableArray)之间进行转换
for (int i=0; i<[array count]; i++) x[i] = [[array objectAtIndex:i] floatValue];
for (int i=0; i<N; i++) [array addObject:[NSNumber numberWithFloat:x[i]]];
但是那些都使用缓慢而低效的for循环。我想看x = [array toFloatArray]
。几乎所有使用图像/任何iOS相关并需要较低级别库(BLAS,LAPACK等)的东西都需要这种转换,并且加速它会很不错。
答案 0 :(得分:0)
无论你做什么,或者涉及哪个库,要从NSArray中的NSNumbers获取浮点数,都无法绕过与你已经显示的或多或少相似的代码。
如果您想要速度,请使用原始C阵列并自行管理。
如果您使用的代码提供或要求NSArrays包含带有浮点数的NSNumber,而不是原始C数组,那么您无能为力。