代码之家  ›  专栏  ›  技术社区  ›  sudo rm -rf

uilabel未显示正确的字符串

  •  0
  • sudo rm -rf  · 技术社区  · 14 年前

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

    以下是我尝试的方法。

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

    我预计产量 Temperature: 84 例如。

    不管我试着点什么菜,我总是 84 .

    当我这样做的时候 NSLog(@"Temperature: %@", text); 我在控制台中得到了想要的结果。

    我的uilabel没有显示与nslog调用相同的结果有什么原因吗?

    谢谢你的帮助!

    2 回复  |  直到 14 年前
        1
  •  3
  •   Firoze Lafeer    14 年前

    应该是:

    fahrenheitLabel.text = [NSString stringWithFormat:@"Temperature: %@",text];
    
        2
  •  2
  •   No one in particular    14 年前

    nslog(,);是为格式化文本而设置的函数调用,将起作用。(,);与格式化文本无关,无法工作。

    实际上(,)只是逗号运算符。这些将按顺序进行评估,最后一个返回。例如:

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

    将x的值保留为c,即3。

    在您的例子中,逗号操作符只返回最后一个“文本”项,这就是为什么您总是看到84。

    您应该使用nsstring格式化调用以您想要的方式组合字符串。