dispatch_once 只执行一次的方法
来源:互联网 发布:淘宝卖家怎么进入 编辑:程序博客网 时间:2024/06/03 22:35
单例实现方式很方便,一句话:
static dispatch_once_t oncePredicate;
dispatch_once(&oncePredicate, ^{
//这个block 只执行一次
});
如果想一个方法只执行一次就可以这样用。“开关量” 是( static dispatch_once_t oncePredicate)显然这个类只能执行一次方法,类的一个实例执行了,其他的实例就不能执行了。
这样修改可以让每个实例都能执行一次:“Since most applications declare this variable as a static global, the documentation covers this pattern. If you have a token which is unique for each class instance and starts out properly zero-initialized, then it will execute for each instance.”
参考:http://stackoverflow.com/questions/8464599/dispatch-once-in-super-class
还是要手动设置开关量——要提前添加成员变量。
class
{
dispatch_once_t oncePredicate;//初始化付值 oncePredicate =0
}
dispatch_once(&oncePredicate, ^{
//这个block 针对每个实例只执行一次!
});
static 变量可以随时添加,成员变量却不行
BOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *types)
参考;RunTime Reference https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html#//apple_ref/c/func/class_addIvar
0 0
- dispatch_once 只执行一次的方法
- dispatch_once让代码只执行一次
- dispatch_once? 一生只放纵一次?
- Android开发中解决动画只执行一次的方法
- 写高质量OC代码52建议总结:45.使用dispatch_once来执行只需要运行一次的线程安全代码
- C#控制方法只执行一次。
- POSIX的只执行一次的pthread_once
- 简化只执行一次的写法
- 只执行一次的标志位
- JQUERY 的AJAX只执行一次问题
- 96-只被执行一次的函数
- jQuery 只执行一次的事件 one
- 只执行一次的装饰器
- ajax只执行一次
- (function() {})();只执行一次
- 只执行一次callback
- GCD 只执行一次
- 防止window.showModalDialog 打开的页面 Page_Load 只执行一次的方法
- 编程能力的四种境界
- Linux2.6.37 I2C驱动框架(四)
- 构造函数中调用虚函数?
- 为myeclipse添加多个tomcat
- Oracle Timezone
- dispatch_once 只执行一次的方法
- Linux2.6.37 I2C驱动框架分析(五)
- Struts框架面试题
- samba源代码安装
- android开源社区
- pix501恢复出厂默认设置实战
- 16---3填空学指针
- Java虚拟机学习 - 对象访问
- PHP的一些面试题