Frage

Ich arbeite an einer App, die mit dem REST -Webdienst spricht. Der JSON -Parser, den ich benutze, ist SBJSON. Auf der Serverseite gibt es diesen Webdienst zurück, der eine Beana zurückgibt. Diese Bohne enthält eine Bohne. Ein Teil des JSON, den ich von der Serverseite erhalten habe, ist so, wenn mehrere Bohnen vorhanden sind:

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

Wenn es nur eine Bohne gibt, sieht es so aus:

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

Durch den SBJSON -Parser wurde ich ein Wörterbuch, als nur eine Beanb zurückgekehrt ist, und bekam ein Array, wenn mehr als eine Beanb zurückgekehrt ist. Der Code, mit dem ich die Bohnen erhalten habe, ist:

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

Das Problem ist, dass ich nicht vorhersagen kann, was ich von der Serverseite bekommen werde. Gibt es eine Möglichkeit, den Rückgabetyp zu testen?

War es hilfreich?

Lösung

Dies ist ein Fall, in dem es angemessen ist, die Klasse des zurückgegebenen Werts zu überprüfen.

id beanB = [beanADic objectForKey:@"tagBeans"];
if ([beanB isKindOfClass:[NSDictionary class]]) {
  NSDictionary *beanDic = beanB;
  ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top