0

目前,我在我的应用程序中进行了以下设置:

例如,我有一个游戏列表,其中游戏有不同的状态,我希望某个状态位于某个部分等。

由于我有 3 个不同的状态,我将使用 NSDictionary,其中 State 作为键,Array 作为值,并将具有特定状态的特定游戏放入正确的数组中。

然后我的代码numberOfRowsInSection将类似于:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSString* state = [self getStateForSection:section];
    return [[obj objectForKey:state] count];
}

问题是我不喜欢将对象放在数组中,从那时起,每当我想访问某个匹配项时,我都必须查看整个数组。

相反,我希望将所有匹配项放在一个 NSDictionary 中,其中 matchID 作为键,NSDictionary 作为值(匹配项)。

但那时我该怎么办UITableView

我可以做一些事情,我返回我的 NSDictionary 的 allKeys 但我仍然必须迭代它以找到它们的当前状态并将它们的键添加到适当的列表中?

4

1 回答 1

3

您也可以在旁边构建一个NSDictionaryfrom matchIDto match,只需重用相同的对象并将 of 保留NSDictionaryNSArray表数据源。那么问题是您必须在数据更改时更新两者。您可能还想研究NSArray filteredArrayUsingPredicate:

另一种可能性是使用另一种称为排序字典的数据结构,它将其键保持在特定顺序。这样,您可以请求所有值作为表格视图的数组并获得恒定顺序,但仍然可以matchID直接使用 a 进行查找 a match

于 2013-03-30T18:08:47.850 回答