UILabel не отображает правильную строку - PullRequest
0 голосов
/ 25 октября 2010

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

Вот как я пытался это сделать.

fahrenheitLabel.text = (@"Temperature: %@", text); 
//fahrenheitLabel is my UILabel
//"text" is a NSString

Я ожидал, например, что результат будет Temperature: 84.

Независимо от того, в каком порядке я его пробуюоднако я всегда просто получаю 84.

Когда я делаю NSLog(@"Temperature: %@", text);, я получаю желаемый результат в консоли.

Есть ли какая-либо причина, по которой моя UILabel не отображает тот же результат, что и вызов NSLog?

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 25 октября 2010

Должно быть:

fahrenheitLabel.text = [NSString stringWithFormat:@"Temperature: %@",text];
2 голосов
/ 25 октября 2010

NSLog (,); это вызов функции, который настроен для форматирования текста и будет работать. (,); не имеет ничего общего с форматированием текста и не будет работать.

На самом деле (,) это просто оператор запятой. Они будут оценены по порядку, а последний будет возвращен. Например:

int a = 1;
int b = 2;
int c = 3;
int x = a, b, c;

Оставит x со значением c, то есть 3.

В вашем случае оператор запятой просто вернет последний элемент, который является «текстом», и именно поэтому вы постоянно видите 84.

Вы должны использовать форматирующие вызовы NSString, чтобы объединить строки так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...