Рассмотрим случай, когда вы анализируете данные из ответа 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
}