使用dispatch_once
函数能保证某段代码在程序运行过程中只被执行1次
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// 只执行1次的代码(这里面默认是线程安全的)
});
整个程序运行过程中,只会执行一次。
代码示例:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSLog(@"该行代码只执行一次");
});
}
注意: 大多数同学只知道用
dispatch_once
来做单例,但也别忽略了代码只执行一次的意思是在整个程序的运行周期内,适当的控制一些变量,可能会起到意想不到的效果。
网友评论