【发布时间】:2012-07-04 19:16:18
【问题描述】:
可能重复:
-[__NSCFDictionary JSONRepresentation]: unrecognized selector sent to instance
我在我的两个项目中使用 SBJson (http://stig.github.com/json-framework/)。因此我下载了代码并将其复制到我的第一个项目中,这样我就可以做这样的事情了
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setValue:email forKey:@"email"];
[dict setValue:password forKey:@"password"];
NSString* json = [dict JSONRepresentation];
现在对于我的第二个和新项目,我也做了同样的事情。我将所有源文件从 SBJson 复制到我的新项目中,并使用与上面完全相同的代码。但是现在当程序来到 NSString* json = [dict JSONRepresentation];我收到以下错误消息:
-[__NSCFDictionary JSONRepresentation]:无法识别的选择器发送到实例 0x689c710
我在第二个项目中做错了什么?
【问题讨论】:
-
你导入
SBJson.h了吗? -
我确定您使用的是静态库,但不知何故,链接器没有合并 SBJson 添加到 NSDictionary 的类别文件。
-
@BillWilson 这没什么区别。这是运行时错误,而不是编译器警告。 Obj-C 是一种动态语言;导入头文件只是为了欺骗编译器,方法名查找发生在运行时。
-
@H2C03 我没有看到提到静态库,听起来所有源代码都包含在他的项目中。在任何情况下,所有文件都可能已添加到项目中但未包含在目标中。也许?