0

我只是在学习做“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;
}

然而,这仍然没有奏效。我会怎么做才能让它发挥作用?

4

1 回答 1

5

更改此行

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

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

initWithFormat@"%@, Hello!", 当你写的时候使用占位符"%@"表示后面的字符串nameString将被它替换所以当@"%@, Hello!"我们真正的意思是@"nameString, Hello!"(你的例子中的nameString是World)

于 2012-06-14T19:52:38.830 回答