gpt4 book ai didi

C++/Objective-C++ - 如何在 NSDictionary 中存储 C++ 变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:49 25 4
gpt4 key购买 nike

我有一个 C++ std::vector<std::bitset<128> > 类型的变量这是在 C++ 中定义和填充的类(从我的 Objective-C++ 类中调用。)

我想将此对象存储在 NSDictionary 中- 或某种等价物。我显然不能简单地添加 std::vector<std::bitset<128> >到 NSDictionary 因为它不是 id 类型.

所以我的问题是:如何实现相同的概念? 如何存储 std::vector<std::bitset<128> >在各种字典中?我可以将 vector 对象包装在 id 中吗?以某种方式输入?即使它不是直接字典,我可以使用另一种方法吗?我还需要它是可变的,这样我就可以在运行时添加键/对象。

我看过 std::map<std::string, std::string> ,但我不确定这是否是我要找的。我也没有发现任何关于它可变的例子。

有人知道如何实现吗?

最佳答案

实际上 NSValue 似乎是解决方案。 @Taum 的建议在某些情况下是正确的(当您将对象存储在某处并确保您的指针正常工作时)。如果你已经创建了一些对象并且它的生命周期是有限的,但你需要进一步插入这个对象,使用另一个 NSValue 方法

std::vector<std::bitset<128>> cppVector;
NSValue *value=[NSValue valueWithBytes:&cppVector objCType:@encode(std::vector<std::bitset<128>>)];

当你需要取回这个值时:

std::vector<std::bitset<128>> cppVector;
[value getValue:&cppVector];

这也适用于简单的结构。

关于C++/Objective-C++ - 如何在 NSDictionary 中存储 C++ 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com