使用tableView numberOfRowsInSection时出现问题

时间:2014-08-22 20:12:23

标签: ios uitableview ios7

我有json,我在一个单独的类中解析并使用以下方法循环:

            for( NSDictionary * game in games )
            {
                Game * teamGame = [[Game alloc] initWithJson:game];
                [teamGames addObject:teamGame];
            }

teamGames拥有以下值:

{
    awayteam = "Olympics 2014";
    gametime = "2014-05-08 19:00:00";
    hometeam = Finland;
},
{
    awayteam = Latvia;
    gametime = "2014-05-11 19:00:00";
    hometeam = "Olympics 2014";
},
{
    awayteam = "Canada 2013";
    gametime = "2014-07-19 19:00:00";
    hometeam = USA;
},
{
    awayteam = "USA 2014";
    gametime = "2014-01-11 15:00:00";
    hometeam = Sweden;
},
{
    awayteam = "Test 2014";
    gametime = "2013-05-16 10:00:00";
    hometeam = Sweden;
},
{
    awayteam = "Olympics 2014";
    gametime = "2014-12-16 19:00:00";
    hometeam = Sweden;
},
{
    awayteam = "Test 2014";
    gametime = "2014-01-11 15:00:00";
    hometeam = Sweden;
},

我想用非重复日期填充表格标题,并使用相应的团队名称填充单元格。同一日期需要放在同一部分。我已经能够在return 1;中使用numberOfRowsInSection来填充表格,但如果超过一个游戏则不会显示。

我怎样才能做到这一点?

该日期内游戏的日期和数组的字典?

谢谢!

2 个答案:

答案 0 :(得分:0)

在numberOfRowsInSection中,只需返回数组的项数(count)。

此方法返回的值是将在tableview部分中显示的行数(如方法标题中所述)。

答案 1 :(得分:0)

重新阅读你的问题,我认为这是你的解决方案:

1。)为包含该日期游戏的每个日期创建一个NSMutableArray。

2。)在创建每个数组时,将其添加到NSMutableDictionary,并将键设置为该数组的Date。 [dictionaryVar setObject:yourArrayOfGames forKey:@“TheDateYouWantToUseForThatArray”];

3.)在numberOfRowsInSection方法中,使用section Integer(该方法已有)获取正确的数组。由于您无法使用索引整数访问字典中的属性,因此您需要将dict中的键转换为数组,然后使用section integer来获取正确的键,然后最终在数组中使用它。应该看起来像:

NSMutableArray *arrayOfDictKeys = [[NSMutableArray alloc] init];

arrayOfDictKeys = [dictionaryVar allKeys]; //(这会抓取字典中所有键的列表) NSString *key = [arrayOfDictKeys objectAtIndex:section]; //(这是您使用section var)

的地方
NSMutableArray *arrayForKey = [[NSMutableArray alloc] init];
arrayForKey = [dictionaryVar objectForKey:key];
return arrayForKey.count;

要使其工作,您需要确保以正确的顺序将Key \ Array对插入字典中,否则使用section抓住您的密钥可能会抓住您意外的日期。