我可以添加自己的类型转换操作符,以便能够将c++对象转换为objective C吗?
Can I add my own type conversion operators to be able to convert C++ object to objective C?
我有一个c++的整数向量,我需要把它变成一个objective C NSArray。一种方法是循环遍历所有元素,取每个int并复制到NSArray,这可以用一个函数来完成但有没有办法为NSArray写一个运算符/构造器它接受std::vector作为参数并生成一个数组,换句话说,我可以扩展NSArray类吗?
你可以在NSArray上做一个category:
NSArray + vector.h:
#include <vector>
@interface NSArray (vector)
-(id)initWithVector:(std::vector<int>)v1;
@end
NSArray + vector.m:
#import "NSArray+vector.h"
@implementation NSArray (vector)
-(id)initWithVector:(std::vector<int>)v1{
NSMutableArray *array = [[NSMutableArray alloc] init];
for(int i =0; i < v1.size(); i++){
[array addObject:[NSNumber numberWithInt:v1.at(i)]];
}
return [array copy];
}
@end
我没有调试它,但它应该可以工作
相关文章:
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 将父类对象强制转换为子类的问题
- 将方法转换为调用该方法的成员函子对象会导致崩溃
- 已转换对象的地址
- 如何在OpenGL中使用关键事件来转换对象
- 使用父类实例化的向下转换对象
- 静态强制转换允许转换对象指针,但不允许转换整数
- 为什么类型转换对象不会更改其地址?有关对象类型的信息存储在哪里?
- 找到对象类型后,是否可以使用 static_cast 强制转换对象
- 旨在复制/转换对象的功能系列的模板
- luabind 如何隐式强制转换对象
- 转换对象
- 使用隐式可转换对象调用move重载函数时的编译错误
- 关于在 cpp 中转换对象的两个问题
- 在运行时根据实例变量强制转换对象(c++)
- 使用用户定义的类型强制转换对象
- 在c++中转换对象
- 从"int"到非标量类型赋值运算符的转换 - 对象到 int
- 在屏幕上转换对象可编程管道
- 在 C 样式类型转换期间,关于强制转换对象的地址空间的实际情况