2009-08-24 111 views
2

可能是一个noob问题,但我正在尝试编写一个简单的iPhone应用程序,通过单击按钮的次数来增加标签。我有以下代码:为什么我的按钮点击事件被调用4次?

#import "Controller.h" 

int *i = 0; 
@implementation Controller 
- (IBAction)buttonClicked:(id)sender {  
    NSString *numTimesClicked = [NSString stringWithFormat:@"%d",i++ ];  
    myLabel.text = numTimesClicked;  
} 
@end 

当我单击按钮时,标签更新倍数为4(4,8,12,16等)。我可能在这里做错了什么?

回答

10

看的i定义:

int *i = 0; 

i不是整数 - 这是一个指针整数。在你的体系结构中int的大小是4个字节,所以指针增加4(这将是int数组中下一个int的地址)。你想声明它只是int i = 0

+0

+1并标记为已回答。感谢您的帮助......我来自c#的背景,我仍然在争取什么时候将某些事物标记为点,何时不会。 – 2009-08-25 14:11:31