我正在学习做"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;
}
Run Code Online (Sandbox Code Playgroud)
我认为如果我可以改为:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
然而,这仍然没有奏效.我该怎么做才能做到这一点?
改变这一行
NSString *greeting = [[NSString alloc] initWithFormat:nameString , @"Hello, %@!"];
Run Code Online (Sandbox Code Playgroud)
至
NSString *greeting = [[NSString alloc] initWithFormat:@"%@, Hello!", nameString];
Run Code Online (Sandbox Code Playgroud)
initWithFormat,当你写@"%@, Hello!"的时候使用占位符"%@"表明下面的字符串nameString将被它替换掉所以当@"%@, Hello!"我们真正的意思是@"nameString, Hello!"(你的例子中的nameString是World)
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |