0

JSON形式のWebサーバーから記事を読んで、テーブルビューで表示しています。各セクションをトピックとして、セクションヘッダーを実装したいと思います。これまでのところ、トピックは3つしかなく、以下の「numberOfSectionsInTableView」のコードは、3つのセクションがあることを正しく判別しています。

私の問題は次の関数'numberOfRowsInSection'にあります。各セクションの行数を決定する方法がわかりません。私はスタックオーバーフローに関する他の回答を見てきましたが、何も役に立たなかった理由は、セクションと行の数が可変であるのに対し、他のほとんどの質問者はセクションの数が固定されているためです。

何か案は?

参考までに、「ニュース」はJSON形式の記事の配列です。私はこの素晴らしいチュートリアルに従います:JSON

私のヘッダーファイルは次のようになります。

NSDictionary *newsArticle;
NSArray *news;
NSMutableData *data;
NSString *tempTopic;
NSString *lastTempTopic;
NSMutableArray *topicList;

私の実装ファイルは次のようになります。

- (int)numberOfSectionsInTableView:(UITableView *)tableView{
lastTempTopic = @"";
int numTopics = 0;
topicList = [[NSMutableArray alloc] init];
for (int i=0; i<news.count; i++) {
    newsArticle = [news objectAtIndex:i];
    tempTopic = [newsArticle objectForKey:@"topic"];
    if ([tempTopic isEqualToString:lastTempTopic])
    {
    }
    else
        numTopics++;
    lastTempTopic = tempTopic;
}
return numTopics;
}


- (int)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [news count];
}

これが私が解析しているJSONコードの一般的なビットです。トピック1、2、3を、適切な行数のそれぞれのセクションにしたいと思います。

[{"title": "title1"、 "original_url": "http://originalurl1.html"、 "topic": "Topic 1"、 "display_url": "display.url1"、 "author": "Author1" 、"published_on": "date1"、 "text_blocks":[{"TextBlock": "article content 1"}]}、{"title": "title2"、 "original_url": "http://originalurl2.html" 、"topic": "トピック1"、 "display_url": "display.url2"、 "author": "Author2"、 "published_on": "date2"、 "text_blocks":[{"TextBlock":"記事のコンテンツ2 "}]}、{" title ":" title3 "、" original_url ":" http://originalurl3.html "、" topic ":" Topic 1 "、"display_url ":" display.url3 "、" author ":" Author3 "、" published_on ":" date3 "、" text_blocks ":[{"TextBlock ":" article content 3 "}]}、{" title ":" title4 "、" original_url ":" http://originalurl4.html "、" topic ":" Topic 2 "、" display_url ":" display.url4 "、" author ":" Author4 "、" published_on ":" date4 "、" text_blocks ":[{" TextBlock ":" article content 4 "}]}、{" title ":" title5 "、" original_url ":" http://originalurl5.html "、" topic ":"トピック2 "、" display_url ":" display.url5 "、" author ":" Author5 "、" published_on ":" date5 "、" text_blocks ":[{"TextBlock ":" article content 5 "}]} {" title ":" title6 "、" original_url ":" http://originalurl6.html "、" topic ":" Topic 2 "、" display_url ":"display。 url6 "、" author ":" Author6 "、" published_on ":" date6 "、" text_blocks ":[{" TextBlock ":" article content 6 "}]} {" title ":" title7 "、" original_url ": "http://originalurl7.html"、 "topic": "Topic 3"、 "display_url": "display.url7"、 "author": "Author7"、 "published_on": "date7"、 "text_blocks":[ {"TextBlock":"記事の内容7"}]}]"http://originalurl6.html"、 "topic": "Topic 2"、 "display_url": "display.url6"、 "author": "Author6"、 "published_on": "date6"、 "text_blocks":[ {"TextBlock": "article content 6"}]} {"title": "title7"、 "original_url": "http://originalurl7.html"、 "topic": "Topic 3"、 "display_url": " display.url7 "、" author ":" Author7 "、" published_on ":" date7 "、" text_blocks ":[{" TextBlock ":" article content 7 "}]}]"http://originalurl6.html"、 "topic": "Topic 2"、 "display_url": "display.url6"、 "author": "Author6"、 "published_on": "date6"、 "text_blocks":[ {"TextBlock": "article content 6"}]} {"title": "title7"、 "original_url": "http://originalurl7.html"、 "topic": "Topic 3"、 "display_url": " display.url7 "、" author ":" Author7 "、" published_on ":" date7 "、" text_blocks ":[{" TextBlock ":" article content 7 "}]}]text_blocks ":[{" TextBlock ":" article content 6 "}]} {" title ":" title7 "、" original_url ":" http://originalurl7.html "、" topic ":" Topic 3 "、" display_url ":" display.url7 "、" author ":" Author7 "、" published_on ":" date7 "、" text_blocks ":[{"TextBlock ":" article content 7 "}]}]text_blocks ":[{" TextBlock ":" article content 6 "}]} {" title ":" title7 "、" original_url ":" http://originalurl7.html "、" topic ":" Topic 3 "、" display_url ":" display.url7 "、" author ":" Author7 "、" published_on ":" date7 "、" text_blocks ":[{"TextBlock ":" article content 7 "}]}]

4

0 に答える 0