我正在尝试使用JSONKit库并将源文件包含在我的项目中。我已经包含了JSONKit.h头文件,因此包含的类别为NSDictionary对象提供了JSONData和JSONString选择器。
NSMutableDictionary* root = [NSMutableDictionary dictionary];
[root setValue:@"CONNECT" forKey:@"command"];
NSData* data = [root JSONData];
但是在运行时我收到以下错误:
-[__NSCFDictionary JSONString]: unrecognized selector sent to instance 0x784b870
为什么类别没有向NSDictionary对象添加适当的方法?
答案 0 :(得分:3)
我正在回答我自己的问题,因为我只是想出来了。
我的代码是从另一个iOS应用程序引用的静态库的一部分。当包含导出类别的静态库时,使用该类别的应用程序必须与“-ObjC”链接器标志链接。
答案 1 :(得分:0)
虽然接受的答案解决了我的问题,但理解它为什么(以及为什么不这样做)肯定是有用的。有关此问题和可能的解决方案的详细信息,请see this post。
答案 2 :(得分:0)
这是一个n00b错误,但是当我将JSONKit.h和JSONKit.m文件导入到我的项目中时,我遇到了完全相同的异常,但没有勾选该框以将其添加到Xcode中的目标。
打开JSONKit.m,显示“工具”面板的“文件检查器”部分,并在“目标成员”中确保应用旁边有一个框。