更新UILabel,从NSNumber获取价值

时间:2011-03-24 10:20:48

标签: iphone objective-c uilabel nsnumber

我正在制作学生预算申请表。并且当用户添加新费用时,代表所有费用总和的标签应该更新,但它不会。

float currentValue = [self.total floatValue];
self.total = [NSNumber numberWithFloat:(currentValue + amountValue)];
self.label.text = [NSString stringWithFormat:@"Razem: %@", total];

在debuger中总计具有适当的值。

当然,当我输入类似这样的内容时

self.label.text = [NSString stringWithFormat:@"something different"];

标签改变了他的内容。

EDIT。

我改变了代码:

self.label.text = [NSString stringWithFormat:@"Razem: %@", [total stringValue]];

但它只更新一次。我记录了这个: YT

3 个答案:

答案 0 :(得分:7)

您必须在代码中进行的唯一更改是将'total'替换为'[total stringValue]'。

self.label.text = [NSString stringWithFormat:@"Razem: %@", [total stringValue]];

或尝试将标签的文字设置为:

[self.label setText:[NSString stringWithFormat:@"Razem: %@", [total stringValue]]];

答案 1 :(得分:2)

如果要打印浮动(或双重),则应使用“%f”而不是“%@”

self.label.text = [NSString stringWithFormat:@"Razem: %f", [self.total  floatValue]];

答案 2 :(得分:1)

NSNumber是一个对象,因此%@将打印其描述。要将其值打印为浮点数,请使用floatValue%f

self.label.text = [NSString stringWithFormat:@"Razem: %f", [total floatValue]];