我在Objective-C中有一些簡單的代碼,包含一個按鈕和一個標籤。當你點擊一次按鈕時,標籤顯示:「你打我了」,如果你點擊了兩次,信息將會是:「我再次嘗試了」。但是,如果你按下5倍或更多的按鈕,信息應該是:「停止那個」;爲什麼++運算符將整數增加4而不是1?
我使用簡單的if
s和使用運算符++
增加的計數器。問題是:我的櫃檯增加了4步,而不是一個步驟。
下面的代碼
@implementation hitMe
NSString *myString = @"";
int *counter = 0;
- (IBAction)htM:(id)sender {
if ([myString isEqualToString:@""]){
//first hit
myString = @"u hit me";
} else {
// second and next hits...
myString = @"u did it again!";
counter++;
}
// if I use "counter > 5" it doesn't work,
// I have to use 21 if I want the button hit 5 times before
// I get the "STOP THAT" message
if (counter > 21) {
myString = @"STOP THAT ";
}
[labelOne setStringValue:myString];
// I used this only to check the count value
[labelTwo setIntValue:counter];
}
@end
你對* what * languages完全有經驗嗎?假設'++'運算符是C-ism,而不是Objective-C-ism,我猜這不是C/C++家族樹中的任何東西。 – 2011-04-02 06:57:08
另外,一些Objective-C提示:類名是駱駝大小寫。方法名稱通常具有很強的描述性,不會使用縮短的方法或變量名稱,如* htM *而不是* hitMe *。我們也不關心你的經驗水平,無論是初學者還是專家,所有程序員都歡迎使用stackoverflow。 :) – 2011-04-02 07:52:00
對不起,如果我用我的英語冒犯了U!這不是我的母語,不幸的是我必須將它作爲學習工具... 我相信,這不是重點... 只要你知道,我很清楚如何命名我的功能,但是,當我做一個「hitme」測試程序時,只是爲了學習obj-c的合成,我沒有必要很好地命名我的兩個函數...... PS:其他函數之前稱爲「hitMe」 ...... – 2011-04-02 18:06:37