Objective-C - Hello World应用程序修改

时间:2012-06-14 19:50:52

标签: iphone objective-c

我正在学习“Hello,World”应用程序。但我有一个问题。我想更改代码,结果显示“World,Hello”,但无法弄清楚我做错了什么。

这是原始代码:

- (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;
}

我认为如果我可以将其更改为:

,它会起作用
- (IBAction)changeGreeting:(id)sender {

self.userName = self.textField.text;

NSString *nameString = self.userName;
if ([nameString length] == 0) {
    nameString = @"World";
}
    NSString *greeting = [[NSString alloc] initWithFormat:nameString , @"Hello, %@!"];
    self.label.text = greeting;
}

然而,这仍然无效。我该怎么做才能做到这一点?

1 个答案:

答案 0 :(得分:5)

更改此行

NSString *greeting = [[NSString alloc] initWithFormat:nameString , @"Hello, %@!"];

NSString *greeting = [[NSString alloc] initWithFormat:@"%@, Hello!", nameString];

initWithFormat,在您撰写@"%@, Hello!"时使用占位符"%@"表示以下字符串nameString将被其替换 因此,当我们@"%@, Hello!"时,我们的意思是@"nameString, Hello!"(您的示例中的nameString是World)