首页 > 解决方案 > 将 NSArray (Swift) 转换为向量 (C++)

问题描述

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

示例.swift

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

样品.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++ 中使用的向量。

标签: iosswiftobjective-c++

解决方案


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

使用您的代码,您将需要使用intValue给您一个int

int myInt = [myArray[j] intValue];


推荐阅读