我正在使用 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 对象中,例如 NSValue
或 NSNumber
,或者使用 NSMapTable .
关于c++ - 如何将 C++ 变量存储为 NSDictionary 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26225237/