将 NSArray (Swift) 转换为向量 (C++)

Convert NSArray (Swift) to vector (C++)

我正在尝试将整数 NSArray 从 Swift 传递到 C++(矢量),并且我使用 Objective-C 作为它们之间的桥梁,转换将在此处进行。我在下面做了一个简单的例子,其中 Swift 中的一个数组被传递给 Objective-C,它被转换成一个向量传递给 C++,在那里它将执行一些计算和 return 字符串形式的结果。

Sample.swift

let myArray: Array<Int> = [10, 24, 13, 34]
HelloWorldWrapper().returnArrayAsString(myArray)

Sample.mm

@implementation HelloWorldWrapper
- (NSString *) returnArrayAsString:(NSArray *) myArray {
    vector<int> myVector;
    for (int j = 0; j< 4; ++j) {
        int myInt = myArray[j]; // error: Cannot initialize a variable of type 'int' with an rvalue of type 'id'
        myVector.push_back(myInt)
    }
}

还有很多其他的东西,我试过也会导致错误。最终我的目标是将 Array[Int] 转换为向量以在 C++ 中使用。

Array<Int> 桥接为 NSArray<NSNumber *>

使用你的代码,你需要使用 intValue 给你一个 int:

int myInt = [myArray[j] intValue];