我真的是 Cocoa 开发的新手,所以请善待。无论如何,我正在尝试反序列化我通过 TouchJSON 从服务器发送的 JSON 字符串,但我收到了'NSDictionary' may not respond to '+dictionaryWithJSONString:error:'
.
我明白错误在说什么,但我在项目中有所有的 TouchJSON 文件,并且我NSDictionary_JSONExtensions.h
在应用程序_Prefix.pch 文件中有一个引用。当我输入命令时,我确实看到它在代码意义上出现了,那么为什么它在编译器中失败了?
这是失败的代码,我将不胜感激任何建议:
- (IBAction)authorizeUser:(id)sender {
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://192.168.0.5/iOS"]];
[request setRequestMethod:@"POST"];
[request setPostValue:credentialsName.text forKey:@"Credentials.Name"];
[request setPostValue:credentialsPassword.text forKey:@"Credentials.Password"];
[request setPostValue:credentialsPIN.text forKey:@"Credentials.PIN"];
[request startSynchronous];
NSError *requestError = [request error];
if (!requestError) {
NSError *jsonError = NULL;
NSDictionary *responseDictionary = [NSDictionary dictionaryWithJSONString:[request responseString] error:&jsonError]; /* <- ERROR... */
status.text = [responseDictionary objectForKey:@"Success"];
}
}
提前致谢!
更新
#ifdef __OBJC__
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "ASIFormDataRequest.h"
#import "CJSONDeserializer.h"
#import "NSDictionary_JSONExtensions.h"
#endif
更新 2
这就是预处理中显示的内容,文件和方法都在那里,所以它应该可以工作吗?
# 10 "/Users/Alex/Documents/iPad/Classes/SignInViewController.m" 2
# 1 "/Users/Alex/Documents/iPad/TouchJSON/Extensions/NSDictionary_JSONExtensions.h" 1
# 32 "/Users/Alex/Documents/iPad/TouchJSON/Extensions/NSDictionary_JSONExtensions.h"
@interface NSDictionary (NSDictionary_JSONExtensions)
+ (id)dictionaryWithJSONData:(NSData *)inData error:(NSError **)outError;