NSMutableArray to std::vector

NSMutableArray to std::vector

本文关键字:vector std to NSMutableArray      更新时间:2023-10-16

是否可以将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,则应手动创建它。

相关文章: