ios - 将 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++ 中使用的向量。
解决方案
Array<Int>
桥接为NSArray<NSNumber *>
使用您的代码,您将需要使用intValue
给您一个int
:
int myInt = [myArray[j] intValue];
推荐阅读
- spring - Spring data couchbase 在一个字段上返回 null
- visual-studio-2008 - 在哪里可以找到旧的 Microsoft 支持包?
- java - 无法将 Firebse 添加到我的 android 工作室
- node.js - Slack 与 Node TypeScript 和 Lambda 的延迟消息集成
- asp.net - 在 Response.End() 之后运行代码及其替代方案
- deep-learning - Faster-RCNN(Pascal-VOC)的训练策略
- ios - 使用 UITextContentType 并从键盘建议中进行选择不会填充文本字段
- c# - 将字符串转换为八进制
- drake - 在模拟过程中创建焊缝
- python - 在 AWS Cloudformation 上调用 ListStacks 时出现 ValidationError