私は本当にココア開発を初めてやっています。とにかく、私は私のサーバーからTouchJSONを介して送信しているJSON文字列を逆シリアル化しようとしていますが、'NSDictionary' may not respond to '+dictionaryWithJSONString:error:'
のコンパイラ警告が表示されます。TouchJSONを使用している場合、「NSDictionary」が「+ dictionaryWithJSONString」に応答しない可能性があります。
私はエラーが言っているが、私はプロジェクト内のすべての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
UPDATE 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;
プレフィックスファイルの内容を投稿します。 –
@Bavarious、上記の私の更新を見てください。 – Gup3rSuR4c
@Alex Per seppo0010提案では、ターゲットに「プリコンパイルプレフィックスヘッダー」が有効になっていて、「プレフィックスヘッダー」がプレフィックスファイルの正しい名前であるかどうかを確認してください。また、ターゲットを掃除して再構築してみてください。いずれにしても、実装ファイル内のヘッダファイルをインポートしても機能しない場合、何かが間違っています。 –