为什么我的按钮点击事件被调用了4次?

Pet*_*lke 2 iphone objective-c

可能是一个菜鸟问题,但我正在尝试编写一个简单的iPhone应用程序,该应用程序按照单击按钮的次数递增标签.我有以下代码:

#import "Controller.h"

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

当我单击按钮时,标签会以4的倍数(4,8,12,16等)更新.我在这里做错了什么?

Chu*_*uck 10

看看定义i:

int *i = 0;
Run Code Online (Sandbox Code Playgroud)

i不是整数 - 它是指向整数的指针.int的大小在您的体系结构上是4个字节,因此指针递增4(这将是int数组中下一个int的地址).你想宣布它只是int i = 0.