обновить UILabel, получить значение из NSNumber - PullRequest
1 голос
/ 24 марта 2011

Я работаю над студенческим бюджетом.И когда пользователь добавляет новый расход, метка, представляющая сумму всех расходов, должна обновиться, но это не так.

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

В отладчике total имеет правильное значение.

Конечно, когда я набираю что-то вроде этого

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

ярлык изменил свое содержание.

РЕДАКТИРОВАТЬ.

Я изменил код:

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

но обновляется только один раз.Я записал это: YT

Ответы [ 3 ]

7 голосов
/ 24 марта 2011

Единственное изменение, которое вы должны сделать в своем коде, это заменить «total» на «[total stringValue]».

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

или попробуйте установить текст метки следующим образом:

[self.label setText:[NSString stringWithFormat:@"Razem: %@", [total stringValue]]];
2 голосов
/ 24 марта 2011

Если вы хотите напечатать число с плавающей точкой (или двойное число), вы должны использовать «% f», а не «% @»

self.label.text = [NSString stringWithFormat:@"Razem: %f", [self.total  floatValue]];
1 голос
/ 24 марта 2011

NSNumber является объектом, поэтому %@ напечатает его описание.Чтобы напечатать его значение как число с плавающей запятой, используйте floatValue и %f.

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