dispatch_once

使用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来做单例,但也别忽略了代码只执行一次的意思是在整个程序的运行周期内,适当的控制一些变量,可能会起到意想不到的效果。

你可能感兴趣的:(dispatch_once)