我正在尝试使用JSONKIT库,并在项目中包含了源文件。我包含了JSONKIT.H标题,以便随附的类别为jsondata和jsonstring选择器提供了nsdictionary对象。

  NSMutableDictionary* root = [NSMutableDictionary dictionary];
  [root setValue:@"CONNECT" forKey:@"command"];
  NSData* data = [root JSONData];

但是在运行时我会收到以下错误:

 -[__NSCFDictionary JSONString]: unrecognized selector sent to instance 0x784b870

为什么类别不将适当的方法添加到Nsdictionary对象?

有帮助吗?

解决方案

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

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

其他提示

尽管公认的答案为我解决了问题,但了解为什么它这样做(以及为什么不这样做)绝对有用。有关此问题和可能的解决方案,请更详细地查看 看到这篇文章.

这是一个N00B的错误,但是当我将JSONKIT.H和JSONKIT.M文件导入我的项目中时,我遇到了完全相同的例外,但没有将框添加到Xcode中的目标中。

打开JSONKIT.M,显示实用程序面板的文件检查器部分,并在目标成员资格中确保您的应用程序旁边有一个盒子。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top