Objective c Objc如何在tableview单元格中将当前值与以前的双精度值进行比较

Objective c Objc如何在tableview单元格中将当前值与以前的双精度值进行比较,objective-c,uitableview,compare,double,Objective C,Uitableview,Compare,Double,我有一个tableview,每10秒刷新一次新的双值,我需要一个机制来比较当前值和以前的值,但我做得不正确 这就是我现在拥有的。您能否建议如何存储当前/以前的值,以便在刷新后进行比较。提前thx - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell; cell = [tableVi

我有一个tableview,每10秒刷新一次新的双值,我需要一个机制来比较当前值和以前的值,但我做得不正确

这就是我现在拥有的。您能否建议如何存储当前/以前的值,以便在刷新后进行比较。提前thx

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell;

    cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifierCell forIndexPath:indexPath];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifierCell];
    }

    Value = [[tempDictionary objectForKey:@"value"] doubleValue];
    if (ValueCurrent > ValuePrevious && ValuePrevious !=0.0) {
        Label.backgroundColor = [UIColor greenColor];
    }
    if (ValueCurrent < ValuePrevious) {
        Label.backgroundColor = [UIColor redColor];
    }
    ValuePrevious = Value; 


    return cell;

}

在我看来,所有这样的检查都应该在模型级别上执行——在您的情况下,在tempdograry中。在更新字典时,如果新值与前一个值不同,则再添加一个已更改的键,并将其设置为@YES,否则设置为@NO


然后,您可以在cellForRowAtIndexPath:中检查此值,并设置背景色。

首先,我不确定是否需要将每个单元格的新值与其以前的值进行比较。如果需要将每个单元格的新值与以前的值进行比较,则必须分别为以前的值和当前值创建NSDictionary的NSArray,然后将它们与每个单元格的相应值进行比较

如果您想在UITableView重新加载时只比较一个值,则不应在cellForRowAtIndexPath中进行比较,而应在调用[tableView reloadData]时进行比较


希望有帮助

cellForRowAtIndexPath对于任何与单元格显示不直接相关的逻辑来说都是错误的位置。特别是ValuePrevious=价值;在那个地方是绝对错误的。请更改所有变量,以小写字母开头。我同意这是最好的做法。我会尽力去做,看看会怎么样。虽然我猜应该有一个更简单的方法。。。。谢谢你指出它谢谢你我知道它应该存在于一个较低级别的检查,但我还没有完全弄清楚。非常感谢。