是否可以将 NSMutableArray 的内容转换为 std::vector ?如果是这样,应该在 Objective-C 或 C++ 代码中完成吗?
您可以使用任何 Objective-C 类型创建向量。
例如,要将 NSString 实例存储到向量中,您可以使用以下代码:
NSMutableArray<NSString*>* array = [@[@"1", @"2"] mutableCopy];
__block std::vector<NSString*> vectorList;
vectorList.reserve([array count]);
[array enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
vectorList.push_back(obj);
}];
for (std::vector<NSString*>::const_iterator iterator = vectorList.cbegin(); iterator != vectorList.cend(); iterator++)
{
NSLog(@"%@", *iterator);
}
您应该在 Objective-C++ 文件中使用它,因为 C++ 没有 Objective-C 的语法(带有 mm 扩展名的文件)。
如果您需要将 NSMutableArray 内的数据转换为不同的表示形式,例如,将 NSNumber 转换为 int 或将 NSString 转换为 std::string,您应该手动创建它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)