Come testare il tipo di ritorno del metodo in Objective-C
-
27-10-2019 - |
Domanda
Sto lavorando a un'app che parla con il servizio Web REST. Il parser JSON che sto usando è SBJSON. C'è questo servizio Web sul lato server restituisce una beassa. Questo fagiolo contiene un fagiolo. Parte del JSON che ho ricevuto dal lato server è così quando ci sono più fagioli:
BeanB =
(
{
key = 12;
name = test2bbb;
},
{
key = 11;
name = test2ttt;
}
);
Quando c'è solo un fagiolo, sembra questo:
BeanB =
{
key = 10;
name = test3;
};
Attraversando il parser SBJSON, ho ottenuto un dizionario quando è stato restituito un solo beanb e ho ottenuto un array quando è stato restituito più di un beanb. Il codice che ho usato per ricevere i fagioli sono:
NSArray/NSDictionary *BeanB = [BeanADic objectForKey:@"beanB"];
Il problema è che non posso prevedere cosa ottengo dal lato server. C'è un modo per testare il tipo di ritorno?
Soluzione
Questo è un caso in cui è appropriato controllare la classe del valore restituito.
id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
NSDictionary *beanDic = beanB;
...