将NSArray传递给cpp函数

Abb*_*bas 3 c++ objective-c nsarray

我需要调用一个cpp函数

void myFunc(float **array2D, int rows, int cols)
{
}
Run Code Online (Sandbox Code Playgroud)

在objective-c对象中.基本上,当我创建NSArray对象时,数组是在我的objective-c代码中创建的.现在,问题是如何将此数组传递给我的cpp函数.

我对这些混合c ++/objective-c的东西有点新,所以任何提示都会受到高度赞赏.

谢谢

pt2*_*ph8 6

我想你必须将其转换NSArray为普通的C数组.就像是:

NSArray *myNSArray; // your NSArray

int count = [myNSArray count];
float *array = new float[count];
for(int i=0; i<count; i++) {
    array[i] = [[myNSArray objectAtIndex:i] floatValue];
}
Run Code Online (Sandbox Code Playgroud)

或者,作为评论者建议(假设您的NSArray包含NSNumbers):

NSArray *myNSArray; // your NSArray

int count = [myNSArray count];
float *array = new float[count];
int i = 0;
for(NSNumber *number in myNSArray) {
    array[i++] = [number floatValue];
}
Run Code Online (Sandbox Code Playgroud)