2011-01-07 34 views
-1

touchjsonライブラリを使用しています。私はjson構造を受け取ります。NSDictionaryエラー。どのようにそれを解決するには?

  1. {"My dishes": ""}私は料理を持っている場合、私は私の料理や
  2. {"My dishes": [{"dish": "rice with fish""restaurant_id": "35", "latitude": "39.783871","longitude": "-96.314759"}]}を持っていない場合。

- 最初のケースで

NSDictionary *all_dish = [dictionary objectForKey:@"My dishes"]; 
for (NSDictionary *my_dish in all_dish) { 
    //some code 
} 

、私は問題を解決するためにどのように

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x2900688' 

を取得しますか?

+0

{{"My dishes": "}}の代わりに{{" My dishes ":[]}を受け取る方法はありますか?どちらの場合でも動作します。 – Jilouc

+0

さて、私は変更しようとします – Voloda2

答えて

4

最初のケースでは、キーMy dishesのオブジェクトは辞書ではなく、高速列挙をサポートしないNSStringです。

all_dishesは、NSDictionaryではなく、NSArrayです。私はそれが動作して驚いています。

料理がない方法は、私が立っている場所から壊れています。My dishesは、nullの値を持つ必要があります。

これを制御できない場合は、それを列挙しようとする前にMy dishesの値がNSArrayであるかどうかを確認してください。

3
if ([allDish isKindOfClass: [NSDictionary class]]) { 
    for (NSDictionary *my_dish in all_dish) { 
     if ([myDish isKindOfClass: [NSDictionary class]]) { 
      //... 
     } 
    } 
} 
関連する問題