我在我的应用程序中的一个视图上创建了一个UILabel。我把它设置为IB中的静态文本,但我将以编程方式更改该文本。
以下是我尝试这样做的方式。
fahrenheitLabel.text = (@"Temperature: %@", text);
//fahrenheitLabel is my UILabel
//"text" is a NSString
我预计输出为Temperature: 84
,例如。
无论我尝试什么顺序,我总是得到84
。
当我NSLog(@"Temperature: %@", text);
时,我在控制台中获得了所需的结果。
为什么我的UILabel没有显示与NSLog调用相同的结果?
感谢您的帮助!
答案 0 :(得分:3)
应该是:
fahrenheitLabel.text = [NSString stringWithFormat:@"Temperature: %@",text];
答案 1 :(得分:2)
的NSLog(,);是一个函数调用,设置用于格式化文本,并将工作。 (,);与格式化文本无关,也不起作用。
实际上(,)只是逗号运算符。这些将按顺序进行评估,并返回最后一个。例如:
int a = 1;
int b = 2;
int c = 3;
int x = a, b, c;
将x保留为c的值,即3。
在你的情况下,逗号操作符将只返回最后一个“text”项,这就是你一直看到84的原因。
您应该使用NSString格式化调用以您希望的方式组合字符串。