2012-01-31 59 views
0

我已經添加了一個按鈕,我希望將標籤從「Hello World」切換到「再見世界」,現在它只是說「再見世界」並且不會改變....我在做什麼錯誤?新開發者...我的你好世界應用程序不工作。我的琴絃有什麼問題?

- (IBAction)button:(id)sender { 
    NSString *mystr = @"Hello World"; 

    if (strcmp(label.text, mystr) == 0) { 
     label.text = @"Goodbye World"; 
    } 
    else 
    { 
     label.text = @"Hello World"; 
    } 
    //label.text = [NSString stringWithFormat:@"%d", strcmp(label.text, @"Hello World")]; 
} 
+0

你最初在label.text中傳遞了什麼? – Sarah 2012-01-31 05:25:45

+0

「繼續...按下我」,但它應該切換。標籤的起始位置無關緊要。 – 2012-01-31 05:26:23

回答

5

試試這個:

if ([label.text isEqualToString:@"Hello World"]) { 
     label.text = @"Goodbye World"; 
} 
else 
{ 
     label.text = @"Hello World"; 
} 
+0

此代碼工作!圍繞if(...)代碼中的代碼括號[]的目的是什麼?我更像是C/C++/C#程序員,所以這對我來說有點奇怪。 – 2012-01-31 05:30:01

+0

語句中的括號是Objective-C中的語法。如果你想調用一個對象的方法,語法是:[myObject myMethod]; – 2012-01-31 05:36:37

0

我還以爲你會使用比較字符串可可的NSString的方法更安全。試試「isEqualToString」。

+0

我發現,但我用奇怪的Xcode語法掙扎了一下。我知道@用於字符串文字,但爲什麼圍繞這段代碼的括號?爲什麼在isEqualToString之後冒號,我期望()的。有沒有一個好的語法資源開始? – 2012-01-31 05:32:57

+0

@用於創建靜態NSString實例,而不僅僅是字符串。你仍然可以定義沒有@符號的C字符串,但通常情況下你最好在Cocoa中使用NSStrings.Time來打破Objective-C和Cocoa的一些文檔! – 2012-01-31 05:43:21

相關問題