Run Loop就是一个事件处理的循环,用来不停的调动工作以及处理输入事件。使用Run Loop的目的就是节省CPU效率,线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。
理解对按钮添加事件这个操作[btn addTarget:self action:@selector:(btnClicked) forcontrollEvents:UIControllEventTouchUpInside];
程序刚启动的时候会创建一个application 对象,之后会创建runloop,所有的事件都是由runloop对象监听的。
当btn添加到subviews中后,我们会添加btn的点击事件,这个事件是在控制器中添加的,控制器会在runloop中注册事件。
用户点击按钮以后会通知application对象,它一次往下查找,--uiwindow—rootviewcontroller—view—subviews—btn,当确定是btn最合适处理这个点击事件的时候,btn会去往上查找响应者,subviews—view—rootviewcontroller—uiwindow—runloop,然后在runloop里边找到btn注册的事件。然后进行处理。