序列化时JSONKit无法识别的选择器

时间:2012-02-16 01:27:27

标签: objective-c ios json jsonkit

我正在尝试使用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对象添加适当的方法?

3 个答案:

答案 0 :(得分:3)

我正在回答我自己的问题,因为我只是想出来了。

我的代码是从另一个iOS应用程序引用的静态库的一部分。当包含导出类别的静态库时,使用该类别的应用程序必须与“-ObjC”链接器标志链接。

答案 1 :(得分:0)

虽然接受的答案解决了我的问题,但理解它为什么(以及为什么不这样做)肯定是有用的。有关此问题和可能的解决方案的详细信息,请see this post

答案 2 :(得分:0)

这是一个n00b错误,但是当我将JSONKit.h和JSONKit.m文件导入到我的项目中时,我遇到了完全相同的异常,但没有勾选该框以将其添加到Xcode中的目标。

打开JSONKit.m,显示“工具”面板的“文件检查器”部分,并在“目标成员”中确保应用旁边有一个框。