dispatch_once 的简单应用


应用详情是;为了解决线请求数据再画图,并且多次请求数据,防止视图重复加载的问题.


1.刚开始使用方法

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        //画图

    });

结果发现,使用退出登录内容的时候崩溃发现 dispatch_once 并不会随着视图的dealloc而制空,而是整个程序

只走一次.


2.改进方法

在扩展里面声明成属性 @property(nonatomic,assign) dispatch_once_t onceToken;
      


然后在使用:

    dispatch_once(&_onceToken, ^{

     //画图

    });

这样就会再页面销毁(dealloc),在下次页面加载的时候可以继续画图了.







你可能感兴趣的:(iOS,GCD,多线程)