Как проверить тип возвращаемого значения метода в Objective-C
Я работаю над приложением, которое общается с веб-сервисом Rest. Парсер JSon, который я использую, это SBJson. Есть этот веб-сервис, на стороне сервера возвращает beanA. Этот бин содержит бин. Часть Json, которую я получил со стороны сервера, выглядит так, когда есть несколько бинов:
BeanB =
(
{
key = 12;
name = test2bbb;
},
{
key = 11;
name = test2ttt;
}
);
когда есть только один компонент, это выглядит так:
BeanB =
{
key = 10;
name = test3;
};
Проходя через синтаксический анализатор SBJson, я получил словарь, когда возвращается только один BeanB, и получил массив, когда возвращено более одного BeanB. Код, который я использовал для получения bean-компонентов:
NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];
Проблема в том, что я не могу предсказать, что я получу от серверной части. Есть ли способ проверить тип возвращаемого значения?
1 ответ
Это тот случай, когда уместно проверить класс возвращаемого значения.
id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
NSDictionary *beanDic = beanB;
...