2016-07-15 3 views
0

Ich habe ein Wörterbuch JSON-Wörterbuch wieobjectForKey löst eine Ausnahme auf Zählung, wenn sie einen einzelnen Wert enthält

{ 
    county = "XXXXX"; 
    states =    (
     "YYYYY", 
     "ZZZZZ" 
); 
} 

Nach dem JSON-Wörterbuch liest die Daten in einem Array ist. Ich mag dann ein anderes Array mit den Daten erstellen, und ich bin mit dem folgenden Code

for (NSString *key in array) { 
     NSMutableArray *myData =[[NSMutableArray aalloc] init]; 
     myData = [array objectForKey:key]; 
     int count = [myData count]; 
} 

Wenn die Taste ‚Staaten‘ ist, es funktioniert gut. Wenn der Schlüssel "Land" ist, wird eine Ausnahme ausgelöst, weil objectForKey einen NSString zurückgibt. Wie löst man das? Wie findet man wie viele Objekte der objectForKey zurückgibt?

Antwort

2

Check out this answer from @HDdeveloper:

if([object isKindOfClass:[NSString class]] == YES) 
{ 
    NSLog(@"String rx from server"); 
} 
else if ([object isKindOfClass:[NSDictionary class]] == YES) 
{ 
    NSLog(@"Dictionary rx from server"); 
} 
else if ([object isKindOfClass:[NSArray class]] == YES) 
{ 
    NSLog(@"Array rx from server"); 
} 

Grundsätzlich, nachdem Sie die objectForKey bekommen, dann brauchen Sie, welche Art von Objekt zu überprüfen, die sie entsprechend ist und verwenden.

0

Ihr JSON enthält ein Wörterbuch.

Der Schlüssel "states" in diesem Dict enthält ein Array und der andere Schlüssel enthält eine Zeichenfolge. Kein Schlüssel enthält ein NSData-Objekt.

Arrays haben eine Zählmethode, aber Zeichenfolgen nicht. Deshalb stürzt du zusammen.

Verwandte Themen