如何在Objective-c中测试方法的返回类型

时间:2011-12-02 21:08:12

标签: objective-c sbjson

我正在开发一款与Rest网络服务对话的应用。我使用的JSon解析器是SBJson。服务器端的这个Web服务返回一个beanA。这个bean包含一个beanB。当有多个bean时,我从服务器端得到的Json的一部分是这样的:

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

当只有一个bean时,它看起来像这样:

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

通过SBJson解析器,当只有一个BeanB返回时,我得到了一个字典,并在返回多个BeanB时获得了一个数组。我用来接收bean的代码是:

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

问题是我无法预测我将从服务器端获得什么。有没有办法测试返回类型?

1 个答案:

答案 0 :(得分:5)

这种情况适合检查返回值的类。

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