我有 C++ 整数 vector ,我需要将其转换为 Objective-C NSArray。一种方法是遍历所有元素,获取每个 int 并复制到 NSArray,这可以通过一个函数来完成,但是有没有办法为 NSArray 编写一个运算符/构造函数,它接受 std::vector 作为参数并且创建一个数组,换句话说,我可以扩展 NSArray 类吗?
最佳答案
你可以像这样在 NSArray 上做一个类别:
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
我没有调试它,但它应该可以工作。
关于c++ - 我可以添加自己的类型转换运算符以将 C++ 对象转换为 Objective-C 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31316761/