GCD简介
详细图解如下所示
运行循环
RunLoop即运行循环在IOS开发中几乎不用,但是概念的理解却非常重要。
作用:保证程序不会退出。监听所有事件,例如:手势触摸,时钟触发(NSTimer),网络加载数据完成等。 没有事件时会休眠省电,一旦监听到事件,会立即响应。
特性:每一个线程都有一个runloop, 但是只有主线程的runloop 会默认启动。runloop 本质就是一个死循环。
代码模仿如下:
//
// main.m
// 运行循环
//
// Created by apple on 15/10/20.
// Copyright (c) 2015年 LiuXun. All rights reserved.
//
#import <Foundation/Foundation.h>
void click(int num)
{
printf("正在执行%d......",num);
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// runloop 本质就是一个死循环,保证程序不会退出
while (YES) {
// 没有事情的时候处于休眠状态。等有事件才开始工作
printf("请输入选项,0表示退出");
int result = -1;
// scanf是阻塞函数,会阻塞当前的线程,如果用户输入才会有反应
scanf("%d", &result);
if (result == 0) {
NSLog(@"相当于用户点击了退出");
break;
}else
{
NSLog(@"您选择了第%d项功能", result);
click(result);
}
}
}
return 0;
}