2009-08-24 37 views
0

我有一個簡單的例程來計算每次用戶點擊一個按鈕。Iphone SDK - 每個按鈕點擊增加4個計數

但整數(numberOfClicks)每次增加4。對於每個用戶點擊,事件是否會發生一次以上?

(順便說一句的操作方法如下連接到「潤色」的內部動作)

- (IBAction)myButtonClicked 
{ 
    numberOfClicks+=1; 
    NSString *clicks = [NSString stringWithFormat:@"number of clicks = %d", numberOfClicks]; 
    myLabel.text = clicks; 
} 

非常感謝, 克里斯

回答

1

如果你喜歡NSLog(clicks)添加一個調用,並且在運行代碼,你會得到4次日誌消息嗎?

其他按鈕是否連接到此IBAction?

您是否已將此IBAction連接到單個按鈕的多個插座 - 即Touch Up Inside,Touch Up Outside,Touch Drag Inside,Touch Drag Outside等?

+0

嗨,我已經與IB檢查,它只連接到一個按鈕。 NSLog跟蹤返回每次增加4,所以仍然對此感到困惑。 – CJR 2009-09-01 17:49:29

+0

從你的代碼中,'numberOfClicks'住在這個函數之外,可能是一個成員變量。是否有其他代碼修改'numberOfClicks'?它在哪裏初始化? – 2009-09-01 19:19:54

0

NSInteger是一個原始的,而不是一個對象!你真正在做的是增加NSInteger *指向的地址。由於NSInteger的長度是4個字節,所以每次你增加它時,編譯器就會認爲,因爲它是一個指針,所以你想跳到內存中的下一個NSInteger,這就是爲什麼你得到4的倍數。只要刪除'*'就可以了你宣佈NSInteger,你應該全部設置。所以,而不是宣佈它像int *NameOfDeclaration;只需刪除*它看起來像這樣int NameOfDeclaration;