UILabel未显示正确的字符串

时间:2010-10-25 01:01:46

标签: iphone objective-c uilabel

我在我的应用程序中的一个视图上创建了一个UILabel。我把它设置为IB中的静态文本,但我将以编程方式更改该文本。

以下是我尝试这样做的方式。

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

我预计输出为Temperature: 84,例如。

无论我尝试什么顺序,我总是得到84

当我NSLog(@"Temperature: %@", text);时,我在控制台中获得了所需的结果。

为什么我的UILabel没有显示与NSLog调用相同的结果?

感谢您的帮助!

2 个答案:

答案 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格式化调用以您希望的方式组合字符串。