当我真正的新Cocoa开发,所以请善待。无论如何,我尝试反序列化JSON字符串,我从我的服务器通过TouchJSON发送,但我得到的'NSDictionary' may not respond to '+dictionaryWithJSONString:error:'
编译器警告。“的NSDictionary”可能不是“+ dictionaryWithJSONString”回应...使用TouchJSON
我明白错误在说什么,但我拥有项目中的所有TouchJSON文件,并且我在应用程序 _Prefix.pch文件中引用了NSDictionary_JSONExtensions.h
。当我键入命令时,我确实看到它显示在代码意义上,那为什么它在编译器中失败?
这里就是它的失败的代码,我会很感激的任何建议:
- (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"];
}
}
提前感谢!
UPDATE
#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;
发表您的前缀文件的内容。 – 2011-01-28 03:53:28
@Bavarious,请看看我上面的更新。 – Gup3rSuR4c 2011-01-28 04:07:50
@Alex每seppo0010建议,检查你的目标是否有“预编译前缀头”启用和“前缀头”是前缀文件的正确名称。另外,请尝试清理目标并重建它。无论如何,如果甚至#import实现文件中的头文件都不起作用,那么这是非常错误的。 – 2011-01-28 04:28:24