0

キー country_id (1 つの国 - 多くの都市) でリンクされた 2 つの json ファイルがあり、NSDictionarys.

質問: 最初NSDictionaryの国 (国データの辞書) から国の 1 つを選択した場合、他の辞書 (都市データの辞書) で選択した country_id にバインドされているすべてのデータを表示するにはどうすればよいですか?


私は何を試しましたか?

私は次にやろうとしました:秒NSDictionary(都市データの辞書)のすべてのキー値をチェックして、それらが選択されたcounty_idと等しいかどうかを確認します

    //dict3 - dictionary of cities data
  for (int i = 0; i<=[[dict3 valueForKey:@"country_id"] count];i++)
      {
      if ([[[dict3 valueForKey:@"country_id"] objectAtIndex:i] isEqualToString:appDelegate.idSelectedCountry])
      {
        NSLog(@"object %@",[nameCities objectAtIndex:i]);   //array of cities name
      }} 

しかし、JSON ファイルが非常に大きいため、計算に時間がかかりすぎます。

4

1 に答える 1

1

この種のことにはCore データを使用し、City および Country エンティティに関係を持たせる必要があります。それはより速く、より正確になります。このチュートリアルを見てください: http://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started

更新:何らかの理由で現在のように NSDictionary を実際に使用したい場合は、少なくともブロックを使用できます。ループよりも少し高速です。

[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
    [self processKey:key value:obj];
}];
于 2012-04-30T13:50:45.770 に答える