2012-02-27 4 views
1

いくつかのJSON値を解析しています。私はNSDictionaryを持っていて、取得するオブジェクトはNSString(例えば "USA")かNSDictionary(例えば1 = "USA"、2 = "UK"など)のいずれかになります。NSDictionaryのキーの値がNSStringか別のNSDictionaryかどうかを知るには?

オブジェクトがNSStringかNSDictionaryかを知る方法はありますか?

ありがとうございました。

id value = [dict [email protected]"foo"]; 

BOOL isString = [value isKindOfClass:[NSString class]]; 
BOOL isDict = [value iskindOfClass:[NSDictionary class]]; 

NSLog(@"is string:%i\tis dictionary:%i", isString, isDict); 

基準物質::NSObject Protocol Reference

答えて

2

NSObjectのクラスから継承されたすべてのクラスを継承、行動や適合性をテストするための方法をいくつか持っています:

if ([someObject isKindOfClass:[NSString class]]) {...} 
if ([someObject isKindOfClass:[NSDictionary class]]) {...} 
0

isKindOfClass:メッセージはあなたの友達です。例えば

:あなたのケースの使用isKindOfClassで

– isKindOfClass: 
– isMemberOfClass: 
– respondsToSelector: 
– conformsToProtocol: 

:メソッド

 
NSObject *object = [dict objectForKey:@:"key"]; 
if ([object isKindOfClass:[NSString class]]) 
{ 
    // it's a string 
} 
else if ([object isKindOfClass:[NSDictionary class]]) 
{ 
    // it's a dictionary 
} 
5

あなたはisKindOfClassを使用していることをテストする必要が