ios GCD的运用
来源:互联网 发布:java应用商店 编辑:程序博客网 时间:2024/04/25 15:10
GCD实现倒计时
__blockint timeout=59;//倒计时时间 dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); dispatch_source_t _timer =dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,0,0,queue); dispatch_source_set_timer(_timer,dispatch_walltime(NULL,0),1.0*NSEC_PER_SEC,0);//每秒执行 dispatch_source_set_event_handler(_timer, ^{ if(timeout<=0){//倒计时结束,关闭 dispatch_source_cancel(_timer); dispatch_async(dispatch_get_main_queue(), ^{ //设置界面显示 根据自己需求设置 }); }else{ int seconds = timeout %60; NSString *strTime = [NSStringstringWithFormat:@"%.2d", seconds]; dispatch_async(dispatch_get_main_queue(), ^{ //设置界面显示 根据自己需求设置 }); timeout--; } }); dispatch_resume(_timer);
// 提供单例接口 + (instancetype) sharedInstantObj;
#pragma mark - 重写allocWithZone, alloc方法最终会调用allocWithZone+ (instancetype)allocWithZone:(struct_NSZone *)zone{ staticinstantObj* obj; staticdispatch_once_t onceToken; //dispatch_once可以保证block中的代码永远只被执行一次 dispatch_once(&onceToken, ^{ obj = [super allocWithZone:zone]; }); return obj;}+ (instancetype)sharedInstantObj{ return [[self alloc] init];}
GCD实现开启并发线程
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0), ^{//设置界面显示 根据自己需求设置 });
dispatch_async(dispatch_get_main_queue(), ^{//设置界面显示 根据自己需求设置});
GCD队列暂停执行处理
// 挂起队列dispatch_suspend(queue);// 恢复队列执行dispatch_resume(queue);
0 0
- ios GCD的运用
- 扩展GCD的运用
- iOS GCD的使用
- IOS的GCD
- ios的GCD特性
- IOS的GCD
- iOS GCD的使用
- iOS GCD的用法
- iOS GCD的使用
- iOS GCD的用法
- ios GCD的使用
- iOS-GCD的实践
- iOS GCD的冰山一角
- IOS runtime的运用
- IOS 多线程的运用
- iOS枚举的运用
- iOS中GCD的魔力
- iOS 中 GCD 的魔力
- iOS UIWebView 修改userAgent
- HDU-4121 Xiangqi 模拟
- Stream 技术小结
- C#WebBrowser控件使用教程与技巧收集 - 转
- [Android 内核开发] DexClassLoader 实例
- ios GCD的运用
- AbsSpinner
- android text基本框架
- github如何删除一个repository(仓库)
- Doubango代码学习(三):fsm
- CPropertySheet隐藏下方按钮、在右下角显示Logo
- tomcat7 设置jvm优化参数
- ios 后台无限运行
- unity3d移动平台性能优化专题(7):GPU优化