Как проверить тип возврата метода в Objective-C

StackOverflow https://stackoverflow.com/questions/8362683

  •  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;
  ...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top