iOS 静态常量static的使用

2017-07-22  本文已影响40人  山水域
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
  //声明一个局部变量i
  int i = 0;
  //每次点击view来到这个方法时让i自增
  i ++;
  //打印结果
  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,这也是预料之中的,因为每次点击进入这个方法就会重新初始化一个全新的变量i = 0,加加了一次后值变为1,然后打印出结果为1,出了这个方法后局部变量i就被释放回收。所以每次打印出来的结果都为1。
但是我们再看看局部变量i被关键字static修饰后的情况:

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
  //声明一个局部变量i
 static int i = 0;
  //每次点击view来到这个方法时让i自增
  i ++;
  //打印结果
  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
上一篇下一篇

猜你喜欢

热点阅读