2011-12-02 41 views
3

我正在開發一個與Rest web服務交談的應用程序。我使用的JSon解析器是SBJson。在服務器端有這個Web服務返回一個beanA。這個bean包含一個beanB。我從服務器端得到了JSON的部分是這樣的,當有多個bean:如何在Objective-c中測試方法的返回類型

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

當只有一個豆,它看起來像這樣:

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

通過SBJson解析器傳遞,當只有一個BeanB返回時,我得到了一個字典,並且在有多個BeanB返回時獲得了一個數組。我用來接收豆的代碼是:

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

問題是我無法預測我將從服務器端得到什麼。有沒有辦法測試返回類型?

回答

5

這是適用於檢查返回值的類的情況。

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

謝謝!這是意想不到的快速... –

相關問題