我有一个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);
}
}];
我不知道哪些被评了。
答案 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]];
}