将图标添加到交替的UITableViewCell

时间:2015-02-02 20:42:30

标签: ios objective-c uitableview

我有一个NSMutableArray填充了项目的评级,我从查询(web)返回。现在让我说我的表视图中有“一个”,“两个”和“三个”的项目。并且只有“一个”和“三个”被评级,然后我在查询时获得这些项目的两个评级,如果在我的cellForRowAtIndexPath:方法中,我就这么做了。

之类的东西
cell.rating = ratingsArray[indexRow.path];

cell.rating是我的单元格中的属性

然后第二项将有三分之一评级...

你看到了问题吗?我怎么能绕过它?

感谢您的帮助:)

修改

myArray = @[@"one", @"two", @"three"];



PFQuery *query = [PFQuery queryWithClassName:@"AverageRating"];
[query whereKey:@"item" containedIn:myArray];
[query findObjectsInBackgroundWithBlock:^(NSArray *results, NSError *error) {
    if (results) {
        NSLog(@"%@", results);

    }
}];

我不知道哪些被评了。

3 个答案:

答案 0 :(得分:0)

现在数组中的值可能是[4,3]

数组中的值应为[4,0,3],因为4,0,3表示个别评级 因此问题可以修复

如果没有可用的

,则返回0或任何未使用的有效值

答案 1 :(得分:0)

听起来非常适合NSNull。将NSNull放入"没有评级"的数组中,然后当您确定在UI中显示什么时,查看数组中的值是否为NSNull。

答案 2 :(得分:0)

您需要的是一种确定细胞是否具有评级的方法。这是一个简单的解决方案。您应该使用NSMutableDictionary。

,而不是使用NSMutableArray来保存您的评级

字典的结构应使“键”可以是评级所对应的索引。所以你的字典看起来像这样:

键:0值:第一个单元格的评级 关键:2值:第三单元的评级

在您的cellForRowAtIndexPath:方法中,您可以检查字典是否包含与indexPath.Row值对应的键,如果是,则可以设置单元格的评级。

代码: 使用字典来表示您的数据:

NSMutableDictionary *ratingsDictionary = [[NSMutableDictionary alloc] init];
[myDictionary setObject:rating1 forKey:[NSNumber numberWithInt:0]]
[myDictionary setObject:rating3 forKey:[NSNumber numberWithInt:2]]

将此添加到您的cellForRowAtIndexPath:方法

if ([ratingsDictionary objectForKey:[NSNumber numberWithInt:indexPath.Row]])
{
    cell.rating = [ratingsDictionary valueForKey:[NSNumber numberWithInt:indexPath.Row]];
}