私のアプリケーション用のJSONを解析しようとしています。 "name"の値を設定しようとすると、エラーunrecognized selector sent to instance'
が出ます。
これは、エラーが発生した上でのコードの行です:CoreData、JSON "インスタンスに送信されたセレクタが認識されません"
json_object: {
draftstatus = "isdraftfull.php";
getcard = "getcard.php";
getpack = "getpack.php";
imageextension = ".jpg";
images = "images/small/";
joindraft = "joindraft.php";
joindraftmenu = "getjoindraftmenu.php";
login = "loginasuser.php";
name = "the server";
passpack = "passpack.php";
playerdraftstatus = "getplayerdraftstatus.php";
signup = "signup.php";
userexists = "checkifuserexists.php";
usesetidforimagepath = false;
}
Server.hルックス:私のJSONはこのようになりますself.name = [json_object objectForKey:@"name"];
(json_objectはNSDictionaryのであり、「自己」はCoreData内のオブジェクトである)
このように:
#import <CoreData/CoreData.h>
#import "JSON.h"
@interface Server : NSManagedObject
{
NSMutableData *responseData;
}
@property (nonatomic, retain) NSString * playerdraftstatus;
@property (nonatomic, retain) NSString * signup;
@property (nonatomic, retain) NSNumber * usesetidforimagepath;
@property (nonatomic, retain) NSString * login;
@property (nonatomic, retain) NSString * imageextension;
@property (nonatomic, retain) NSString * userexists;
@property (nonatomic, retain) NSString * getcard;
@property (nonatomic, retain) NSString * passpack;
@property (nonatomic, retain) NSString * draftstatus;
@property (nonatomic, retain) NSString * joindraftmenu;
@property (nonatomic, retain) NSString * getpack;
@property (nonatomic, retain) NSString * joindraft;
@property (nonatomic, retain) NSString * images;
@property (nonatomic, retain) NSNumber * isdefaultserver;
@property (nonatomic, retain) NSString * root;
@property (nonatomic, retain) NSString * name;
- (id) initWithWebAddress:(NSString *) address;
- (id) initWithWebAddressAsyn:(NSString *) address;
- (void) fillFromJSON:(NSDictionary *) json_object;
- (void) saveServer;
@end
私はそれが数日前に働いていたと信じていますが、私は覚えていません。今日私が作業を開始したとき、私は "ルート"オブジェクトを追加しました。それはエラーなしでコンパイルされますが、そのjsonを解析しません。
ヘルプ?
EDIT
私はname = "the server"
に戻ってきてJSONを変更し、私はこのNSLog(@"json_object name: %@", [json_object objectForKey:@"name"]);
のようにログがjson_object name: the server
は言うが、私はString型であるself.name
にそれを設定しようとしたとき、私はまだ同じエラーを取得することをログインしたとき。
名前の中の値が常に引用符で囲まれていないと、[json_object objectForKey:@"name"]
のログからわかるように、JSONのログバージョンを調べるときに引用符なしで表示されることがあります。それは問題なのでしょうか、それはなぜ起こっていますか?私がjsonを出力しているWebページを真っ直ぐ見ると、値の周りに常に引用符があります。
EDITは2
フルエラーは次のとおりです。
-[Server setName:]: unrecognized selector sent to instance 0x61036e0
2010-11-19 15:46:10.113 TCGDraft[57953:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Server setName:]: unrecognized selector sent to instance 0x61036e0'
*** Call stack at first throw:
EDIT
3私は "自己" についてのNSLogを行なったし、これはself: <Server: 0x6143190> (entity (null); id: (null) ; data: {})
は、私が何を持って戻って来ないものですそれが正常だとすれば手がかりになる。これはCoreDataオブジェクトであり、私は何とかそれを混乱させるかもしれないと感じています。
EDIT 4
私は戻って、このようにCoreDataからサーバーオブジェクトを作成するためのコードを見て:
Server *server = [NSEntityDescription
insertNewObjectForEntityForName:@"Server"
inManagedObjectContext:context];
私は今ちょうどそれがそうEXC_BAD_ACCESS
を言うエラーが出ることを実行したとき何とかそのオブジェクトが台無しになっているように見える...しかし、私はどのようにわからない。
EDIT 5
右ので、私は完全に私のカスタムコードでServer.hとServer.mファイルを削除し、私はCoreDataオブジェクトからそれらを再作成し、私は「編集4」に掲載し、Iそのコードを試してみましたEXC_BAD_ACCESSについても同じエラーが発生します。だから、私は明らかにForwardではなくBACKWARDになりました。
[json_object objectForKey: "名前" @]。ヌル値を戻しています。それを確認してください。 – jfalexvijay
"json_object"の下にある "name"が "Default Server"であると言うと、null値を戻す方法はありますか? –
本当にjson_objectはNSDictionaryですか? NSLog(@ "class:%@"、[json_object class])を実行します。それが何を返すか見ることができます。 –