我正在学习“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;
}
然而,这仍然无效。我该怎么做才能做到这一点?
答案 0 :(得分:5)
更改此行
NSString *greeting = [[NSString alloc] initWithFormat:nameString , @"Hello, %@!"];
要
NSString *greeting = [[NSString alloc] initWithFormat:@"%@, Hello!", nameString];
initWithFormat
,在您撰写@"%@, Hello!"
时使用占位符"%@"
表示以下字符串nameString
将被其替换
因此,当我们@"%@, Hello!"
时,我们的意思是@"nameString, Hello!"
(您的示例中的nameString是World)