Как проверить тип возврата метода в Objective-C
-
27-10-2019 - |
Вопрос
Я работаю над приложением, которое разговаривает с веб -службой REST. Парсер JSON, который я использую, это SBJSON. На стороне сервера эта веб -служба возвращает Beana. Этот фасоль содержит боб. Часть JSON, которую я получил со стороны сервера, такая, когда есть несколько бобов:
BeanB =
(
{
key = 12;
name = test2bbb;
},
{
key = 11;
name = test2ttt;
}
);
Когда есть только один фасоль, выглядит так:
BeanB =
{
key = 10;
name = test3;
};
Проходя через синтаксический анализатор SBJSON, я получил словарь, когда вернулся только один из бобов, и получил массив, когда вернулось более одного боба. Код, который я использовал для получения бобов:
NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];
Проблема в том, что я не могу предсказать, что я собираюсь получить со стороны сервера. Есть ли способ проверить тип возврата?
Решение
Это тот случай, когда уместно проверить класс возвращенного значения.
id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
NSDictionary *beanDic = beanB;
...