2012-06-14 26 views
0

我剛學習做「Hello,World」應用。但我有一個問題。我想更改代碼,以便結果顯示「World,Hello」,但無法弄清楚我做錯了什麼。Objective-C - Hello World應用修改

這裏是原代碼:

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

我必須問,IBAction是不是連接起來了? – CodaFi

回答

5

改變這一行

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

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

initWithFormat,使用佔位符,當你寫@"%@, Hello!""%@"表示後面的字符串nameString會被它 所以,當我們@"%@, Hello!"代替我們真的意思是@"nameString, Hello!"(你的例子中的nameString是世界)

+0

這對我有意義。謝謝! – user1457161