Как проверить тип возврата метода в Objective-C - PullRequest
3 голосов
/ 03 декабря 2011

Я работаю над приложением, которое общается с веб-сервисом Rest.Парсер JSon, который я использую, это SBJson.Этот веб-сервис на стороне сервера возвращает beanA.Этот бин содержит бин.Часть Json, которую я получил со стороны сервера, выглядит следующим образом, когда есть несколько bean-компонентов:

        BeanB =             
        (
            {
                key = 12;
                name = test2bbb;
            },
            {
                key = 11;
                name = test2ttt;
            }
        );

, когда есть только один bean-компонент, это выглядит так:

        BeanB =             
        {
            key = 10;
            name = test3;
        };

Passingчерез синтаксический анализатор SBJson я получил словарь, когда возвращается только один BeanB, и получил массив, когда возвращено более одного BeanB.Код, который я использовал для получения bean-компонентов:

        NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];

Проблема в том, что я не могу предсказать, что я получу от серверной части.Есть ли способ проверить тип возвращаемого значения?

1 Ответ

5 голосов
/ 03 декабря 2011

Это тот случай, когда уместно проверить класс возвращаемого значения.

id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
  NSDictionary *beanDic = beanB;
  ...
...