-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//聲明一個局部變量i
int i = 0;
//每次點(diǎn)擊view來到這個方法時讓i自增
i ++;
//打印結(jié)果
NSLog(@"i=%d",i);
}
輸出日志如下:
2016-10-26 14:58:48.290 fff[2760:170260] i=1
2016-10-26 14:58:49.044 fff[2760:170260] i=1
2016-10-26 14:58:49.200 fff[2760:170260] i=1
從輸出日志中我們可以看到i一直等于1,這也是預(yù)料之中的,因?yàn)槊看吸c(diǎn)擊進(jìn)入這個方法就會重新初始化一個全新的變量i = 0,加加了一次后值變?yōu)?,然后打印出結(jié)果為1,出了這個方法后局部變量i就被釋放回收。所以每次打印出來的結(jié)果都為1。
但是我們再看看局部變量i被關(guān)鍵字static修飾后的情況:
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//聲明一個局部變量i
static int i = 0;
//每次點(diǎn)擊view來到這個方法時讓i自增
i ++;
//打印結(jié)果
NSLog(@"i=%d",i);
}
輸出日志如下:
2016-10-26 15:07:34.276 fff[2817:175155] i=1
2016-10-26 15:07:35.347 fff[2817:175155] i=2
2016-10-26 15:07:35.761 fff[2817:175155] i=3
2016-10-26 15:07:36.057 fff[2817:175155] i=4
2016-10-26 15:07:36.415 fff[2817:175155] i=5