-3

次のようなオブジェクトがあります。

{
 "userID": "2A8761E4-C13A-470E-A759-91432D61B6AF-25982-0000352D853511AF"
}

AFNetworking JSON リクエストからの戻り値です。このオブジェクトは JSON と呼ばれます。

いくつかの異なる方法で userID 値にアクセスしようとしましたが、「認識されないセレクター」というエラーが表示され続けます。これが私が試したことです:

[JSON objectForKey:@"userID"]
[JSON valueForKey:@"userID"]   
[[JSON objectAtIndex:0] valueForKey:@"userID"];
[[JSON objectAtIndex:0] objectForKey:@"userID"];
[JSON objectAtIndex[0]];

正しい構文は何ですか?

編集

認識されないセレクタ エラーの詳細は次のとおりです。

-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x20068150
2013-02-23 15:58:13.993 BMTabbed[12312:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x20068150'
*** First throw call stack:
(0x325032a3 0x3a22097f 0x32506e07 0x32505531 0x3245cf68 0xbe9ed 0xbe91b 0xaae8f 0xabe65 0x3a63811f 0x3a6374b7 0x3a63c1bd 0x324d6f3b 0x32449ebd 0x32449d49 0x360202eb 0x3435f301 0x96e95 0x3a657b20)
libc++abi.dylib: terminate called throwing an exception
4

2 に答える 2

1

NSDictionaryにセレクターを送信していNSStringます。JSON 文字列のルート オブジェクトに応じて、JSON 文字列をまたはNSJSONSerializationに変換するために使用できます。あなたの場合、それは:NSDictionaryNSArrayNSDictionary

NSData *data = [NSData dataWithBytes:[json UTF8String] length:[json lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
于 2013-02-23T21:18:35.640 に答える
1

もしも

NSLog(@"%@", [JSON class]); //=> __NSCFDictionary

それからどちらか

[JSON objectForKey:@"userID"]

また

JSON[@"userID"]

動作するはずです。

于 2013-02-23T21:29:32.543 に答える