NSString initWithFormat返回“...”

时间:2012-07-26 19:31:44

标签: iphone

我刚刚开始为iPhone开发(我已经很长时间以来一直是Android开发人员)并且遇到了一个非常简单的任务问题:更改文本标签的文本。我遵循了Apple开发人员教程,但是NSString的initWithFormat方法存在问题。

问题出在这个方法中:

-(IBAction)changeGreeting:(id)sender {

    self.userName = self.textField.text;

    NSString *nameString = self.userName;
    if ([nameString length] == 0) {
        nameString = @"World";
    }

    NSString *greeting = [[NSString alloc] initWithFormat:@"Hello, %@!", nameString];
    self.label.text = greeting;
}

当我运行项目时,textField中是否有值,标签总是设置为Hello,...

当我将方法的最后一行更改为:

self.label.text = self.userName;

或者:

self.label.text = nameString;

标签显示应该在initWithFormat调用中插入%@的值。注意:我也尝试过使用stringWithFormat,我也遇到了同样的问题。

感谢。

2 个答案:

答案 0 :(得分:2)

您的标签太窄了。假设它在IB中,打开IB并使标签更宽。

答案 1 :(得分:0)

省略号表示您的字符串对于它的容器来说太长了。尝试将长度属性更改为更大的属性。