dispatch_once 的简单应用

本文介绍了一种解决移动端视图重复加载问题的方法。通过使用dispatch_once机制,并将其与视图控制器的生命周期相结合,实现了视图只在首次加载时进行初始化绘制,避免了后续加载时的重复工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


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


1.刚开始使用方法

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        //画图

    });

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

只走一次.


2.改进方法

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


然后在使用:

    dispatch_once(&_onceToken, ^{

     //画图

    });

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







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值