zak*_*een 95
if([obj isKindOfClass:[NSArray class]]){
//Is array
}else if([obj isKindOfClass:[NSDictionary class]]){
//is dictionary
}else{
//is something else
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*ant 13
尝试
[myObject isKindOfClass:[NSArray class]]
Run Code Online (Sandbox Code Playgroud)
和
[myObject isKindOfClass:[NSDictionary class]]
Run Code Online (Sandbox Code Playgroud)
这两个都应该返回BOOL值.这是NSObject方法的基本用法:
-(BOOL)isKindOfClass:(Class)aClass
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此答案: 在Objective-C中,如何测试对象类型?
考虑从JSON或XML响应中解析数据时的情况.根据您使用的解析库,您可能不会得到NSArrays或NSDictionaries.相反,您可能有__NSCFArray或__NSCFDictionary.
在这种情况下,检查您是否有数组或字典的最佳方法是检查它是否响应只有数组或字典才会响应的选择器:
if([unknownObject respondsToSelector:@selector(lastObject)]){
// You can treat unknownObject as an NSArray
}else if([unknownObject respondsToSelector:@selector(allKeys)]){
// You can treat unknown Object as an NSDictionary
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24227 次 |
最近记录: |