我正在解析一些JSON值。我有一个NSDictionary,对于某个值,我得到的对象可以是NSString(例如"USA")或NSDictionic(例如1="USA"、2="UK"等)。
有没有办法知道对象何时是NSString或NSDictionary?
谢谢。
您必须使用isKindOfClass进行测试。
例如:
NSObject*object=[dict objectForKey:@:"key"];if([object isKindOfClass:[NString-class]]){//这是一根绳子}else if([object isKindOfClass:[NSDictionary class]]){//这是一本字典}
从NSObject类继承的所有类都有两种方法来测试继承、行为和一致性:
– isKindOfClass:
– isMemberOfClass:
– respondsToSelector:
– conformsToProtocol:
在您的情况下,使用isKindOfClass:方法:
if ([someObject isKindOfClass:[NSString class]]) {...}
if ([someObject isKindOfClass:[NSDictionary class]]) {...}
isKindOfClass:
消息是您的朋友:
id value = [dict objectForKey@"foo"];
BOOL isString = [value isKindOfClass:[NSString class]];
BOOL isDict = [value iskindOfClass:[NSDictionary class]];
NSLog(@"is string:%itis dictionary:%i", isString, isDict);
参考资料:NSObject协议参考