//
// ViewController.m
// 09-掌握-GCD常用函数
//
// Created by xiaomage on 16/2/18.
// Copyright © 2016年 小码哥. All rights reserved.
// #import "ViewController.h"
#import "XMGPerson.h" @interface ViewController () @end @implementation ViewController -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
// [self once]; XMGPerson *p1 = [[XMGPerson alloc]init];
XMGPerson *p2 = [[XMGPerson alloc]init];
NSLog(@"%@---%@",p1.books,p2.books);
} //延迟执行
-(void)delay
{
NSLog(@"start-----"); //1. 延迟执行的第一种方法
//[self performSelector:@selector(task) withObject:nil afterDelay:2.0]; //2.延迟执行的第二种方法
//[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(task) userInfo:nil repeats:YES]; //3.GCD
// dispatch_queue_t queue = dispatch_get_main_queue();
dispatch_queue_t queue = dispatch_get_global_queue(, );
/*
第一个参数:DISPATCH_TIME_NOW 从现在开始计算时间
第二个参数:延迟的时间 2.0 GCD时间单位:纳秒
第三个参数:队列
*/
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), queue, ^{
NSLog(@"GCD----%@",[NSThread currentThread]);
}); } //一次性代码
//不能放在懒加载中的,应用场景:单例模式
-(void)once
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ //整个项目生命周期只执行一次,多次调用都不会执行多次
NSLog(@"---once----");
});
} -(void)task
{
NSLog(@"task----%@",[NSThread currentThread]);
}
@end
//
// XMGPerson.h
// 09-掌握-GCD常用函数
//
// Created by xiaomage on 16/2/18.
// Copyright © 2016年 小码哥. All rights reserved.
// #import <Foundation/Foundation.h> @interface XMGPerson : NSObject @property (nonatomic, strong) NSArray *books;
@end
//
// XMGPerson.m
// 09-掌握-GCD常用函数
//
// Created by xiaomage on 16/2/18.
// Copyright © 2016年 小码哥. All rights reserved.
// #import "XMGPerson.h" @implementation XMGPerson -(NSArray *)books
{
// if (_books == nil) {
// _books = @[@"1234",@"56789"];
// } static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ //只执行一次
_books = @[@"",@""];
});
return _books;
}
@end

最新文章

  1. Nessus的安装/激活/更新
  2. [deviceone开发]-do_Dialog的基本使用示例
  3. ffmpeg-20160522-git-bin
  4. 模拟赛1030d1
  5. OSG第一个Demo
  6. jQuery bind and unbind (绑定和解除)
  7. delphi7如何实现 科学计数的转换。 比如我输入2,触发之后会转换成2.000000E+00.求赐教
  8. China特色创新现状
  9. asp.net MVC dropList 绑定
  10. dede 留言簿 多个
  11. @ManyToMany 两个表多对多关联
  12. centos 下搭建 php环境(2) mysql 安装
  13. jQuery事件大全
  14. Fiddler的hosts配置使用
  15. yii2 源码分析 Component类分析 (二)
  16. [HNOI2001]求正整数
  17. 理解矩阵与线性代数&lt;转&gt;
  18. google zxing android扫描优化&amp;解析
  19. upper_bound
  20. u3d 逐个点运动,路径运动。 U3d one by one, path motion.

热门文章

  1. 利用filter过滤去重
  2. CF1029E Tree with Small Distances
  3. 【memcached】memcached中flags字段的作用
  4. python面向对象编程实例
  5. STM32F407 IO引脚复用器和映射 个人笔记
  6. Flask基础(3):session、flash、特殊装饰器、蓝图、路由正则匹配、上下文管理 &amp; flask-session
  7. [K/3Cloud] 隐藏菜单后,如何在插件间接的调用隐藏菜单的操作
  8. POJ 2778 (AC自动机+矩阵乘法)
  9. PatentTips - Hierarchical RAID system including multiple RAIDs
  10. Python基础之 一 补充