2

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

4

3 回答 3

3

我正在回答我自己的问题,因为我刚刚弄清楚了。

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

于 2012-02-16T01:46:04.010 回答
0

虽然接受的答案为我解决了这个问题,但理解它为什么会(以及为什么它可能不会)绝对有用。如需更详细地了解此问题和可能的解决方案,请参阅这篇文章

于 2012-12-27T19:51:29.690 回答
0

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

打开 JSONKit.m,显示 Utilities 面板的 File Inspector 部分,并在 Target Membership 中确保您的应用旁边有一个复选框。

于 2013-04-11T10:12:48.863 回答