c++ - 如何将 C++ 变量存储为 NSDictionary 中的值?

标签 c++ ios objective-c

我正在使用 Objective-C++ 进行编码,并希望将 ObjC 结构转换为 C++。 ObjC 端变量在 const NSString* 中, C++ 端变量在枚举中。

我的项目使用 ARC。

我是这样做的:

NSDictionary* myDict = [NSDictionary dictionaryWithObjectsAndKeys: My::NameSpace::enumVar, MyObjCVar, nil]

这给了我一个编译器错误:

Implicit conversion of 'int' to 'id' is disallowed with ARC.

有没有一种通用的方法可以将任何 C++ 类型存储到 NSDictionary 中?

最佳答案

除了 NSObject 指针(id 类型)之外,您不能直接在 NSDictionary 中为键或值存储任何内容。您需要将对象/指针/值装箱到 objective-c 对象中,例如 NSValueNSNumber,或者使用 NSMapTable .

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

相关文章:

c++ - 在 .rs 资源文件 C++ 控制台中使用参数

c++ - 类模板的注入(inject)类名

c++ - 从 CPP 代码调用 Objective-C 方法

ios - Swift - 强制 UITextview 仅小写

iphone - 启动图像 - iPhone 应用程序

objective-c - UIView 的边界大小与帧大小

C++。谁能帮我找出我用简单迭代法求解方程的代码中的错误?我得到像 -1.#IND00 这样的解决方案

c++ - 如何在 C++ 中正确组织和实现 SFML 音频?

iOS - HTTP 方法不发出 POST 请求而是发出 GET

ios - 如何使用 GPUImage 在视频上添加滤镜?