1

実際、私は iOS プログラミングの初心者で、独学で学ぼうとしています。

ヘッダー セクションを含むセクション化されたテーブル ビューがありますが、このセクションがタップされたときにビューを折りたたんでセクション内の行を展開できるようにしたいと考えています。

このチュートリアルを使用します: http://blog.paxcel.net/blog/expandablecollapsible-table-for-ios/

しかし、私のアプリケーションでは、JsonファイルではなくファイルがありPlistます。

だから私は setCategoryArray() 関数で使用します:

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData* data = [NSData dataWithContentsOfURL:
                [NSURL URLWithString: @"http://......./catjsonf.php"]];

NSError* error;
json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

jsonResults = [json objectForKey:@"nodes"];
dispatch_async(dispatch_get_main_queue(), ^{
    [self.tableView reloadData];
});


});

それ以外の :

  NSURL *url = [[NSBundle mainBundle] URLForResource:@”CategoryList” withExtension:@”plist”];

NSArray *mainArray = [[NSArray alloc] initWithContentsOfURL:url];

しかし、うまくいきません。何か他のことをする必要がありますか?

4

1 に答える 1

1

私のブログをチェックしてください。きっと役に立ちます。ここにリンクがあります。

iOS 用の展開/折りたたみ可能なテーブル

次のことを行う必要があります

  1. 私の場合は「カテゴリ」であるため、最初にjsonファイルに従ってクラスを設計します。
  2. モデル クラスの操作が完了したら、次のメソッドを編集して、モデル オブジェクトの配列を準備する必要があります。

ヒント: json から、次のような辞書を直接見つけることができます。

id result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

ここで、結果をさらにキャストして辞書オブジェクトを取得できます。そして、次の方法のように単純にデータをロードします

    - (void) setCategoryArray
    {

          NSURL *url = [[NSBundle mainBundle] URLForResource:@”CategoryList” withExtension:@”plist”];

          NSArray *mainArray = [[NSArray alloc] initWithContentsOfURL:url];

          NSMutableArray *categoryArray = [[NSMutableArray alloc] initWithCapacity:[mainArray count]];

         for (NSDictionary *dictionary in mainArray) 
         {

              Category *category = [[Category alloc] init];

              category.name = [dictionary objectForKey:@"name"];

              category.list = [dictionary objectForKey:@"list"];

              [categoryArray addObject:category];

          }

         self.categoryList = categoryArray;
     }
  1. これが完了したら、テーブル ビューのデータ ソースを編集し、それに応じてメソッドを委任する必要があります。
于 2013-04-02T09:42:55.130 に答える