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

Rob*_*ang 3 objective-c sbjson

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

        BeanB =             
        (
            {
                key = 12;
                name = test2bbb;
            },
            {
                key = 11;
                name = test2ttt;
            }
        );
Run Code Online (Sandbox Code Playgroud)

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

        BeanB =             
        {
            key = 10;
            name = test3;
        };
Run Code Online (Sandbox Code Playgroud)

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

        NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*ier 5

在这种情况下,检查返回值的类是合适的.

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