0

JSONでクライアントアプリケーションにデータを返すWebサービスがあります。TouchJsonを使用して、このデータをNSDictionaryに逆シリアル化します。素晴らしい。ディクショナリにはキー「results」が含まれ、resultsにはオブジェクトのNSArrayが含まれます。

これらのオブジェクトは、ログに出力すると次のようになります。

NSLog(@"Results Contents: %@",[resultsArray objectAtIndex:0 ]);

出力:

Results Contents: {
    creationdate = "2011-06-29 22:03:24";        
    id = 1;
    notes = "This is a test item";
    title = "Test Item";
    "users_id" = 1;
}

このオブジェクトのタイプを特定できません。このオブジェクトからプロパティと値を取得するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

3

のコンテンツを取得するには、NSDictionary取得する値のキーを指定する必要があります。すなわち:

NSString *notes = [[resultsArray objectAtIndex:0] valueForKey:@"notes"];
于 2011-06-30T23:41:39.677 に答える
2

オブジェクトがクラスのインスタンスであるかどうかをテストするには、a次のいずれかを使用します。

[yourObject isKindOfClass:[a class]]

[yourObject isMemberOfClass:[a class]]

オブジェクトのクラス名を取得するには、次のいずれかを使用できます。

const char* className = class_getName([yourObject class]);

NSString *className = NSStringFromClass([yourObject class]); 

の場合、辞書キーのを返すためにNSDictionary使用できます。これにより、(配列を取得することにより)いくつあるかもわかります。タイプがわかれば、電話をかけることができます-allKeysNSArraycount

[[resultsArray objectAtIndex:0] objectForKey:keyString];

ここで、は、などkeyStringのいずれかです。ただし、クラスがのサブクラスでない場合は、代わりに次を使用します。@"creationdate"@"notes"NSObject

[[resultsArray objectAtIndex:0] valueForKey:keyString];

たとえば、keystringequalに対してこれを行う必要があります@"id"

于 2011-06-30T23:29:45.513 に答える