iOS高级-RunLooper

普通代码都是命令式执行:执行完了就完了,但是手机应用肯定不是这样程序会一直在运行的,可以归纳成一个event驱动,说白了就是一个死循环

如下伪代码:

int main()

{

while(APPIsRunning){

id  whoWakeMe = SleepForWakingUp;

id event = GetEvent(WhoWakeMe);

HandleEvernt(event);

}

return  0;

}

再循环中,有人唤醒程序,再去找唤醒他的人,再由唤醒他的人去找唤醒他的事件,最后执行事件,执行事件。

使程序一直运行并接受用户输入,决定程序何时执行何事,调节解耦message Queue,节省cpu事件

时间: 2024-10-25 07:28:05

iOS高级-RunLooper的相关文章

(转发)IOS高级开发~Runtime(二)

一些公用类: @interface ClassCustomClass :NSObject{ NSString *varTest1; NSString *varTest2; NSString *varTest3; } @property (nonatomic,assign)NSString *varTest1; @property (nonatomic,assign)NSString *varTest2; @property (nonatomic,assign)NSString *varTest3

(转发)IOS高级开发~Runtime(三)

11.系统类的方法实现部分替换 - (void) methodExchange { Method m1 = class_getInstanceMethod([NSStringclass],@selector(lowercaseString)); Method m2 = class_getInstanceMethod([NSStringclass],@selector(uppercaseString)); method_exchangeImplementations(m1, m2); NSLog(

(转发)IOS高级开发~Runtime(四)

用C代替OC: #import <objc/runtime.h> #import <objc/message.h> #import <stdio.h> extern int UIApplicationMain (int argc,char *argv[],void *principalClassName,void *delegateClassName); struct Rect { float x; float y; float width; float height;

(转发)IOS高级开发~Runtime(一)

IOS高级开发-Runtime(一) IOS高级开发-Runtime(二) IOS高级开发-Runtime(三) IOS高级开发-Runtime(四) 一些公用类: @interface CustomClass : NSObject - (void) fun1; @end @implementation CustomClass - (void) fun1 { NSLog(@"fun1"); } @end @interface TestClass : NSObject @end @imp

《iOS 高级编程》之Tableview进阶指南

本章内容: ●    学习如何进阶使用UITableView,带给应用更高级的观感(look and feel) ●    学习如何开发自己定制的UITableView类,模仿iMessage应用的观感 ●    为一个基于分组的UITableView实现下钻逻辑 在iOS应用中呈现数据时,UITableView可能是最经常使用的用户界面对象.在本章中,将学习到以超越标准实现的方式使用UITableView,并理解UITableView类的工作方式.你会创建一个聊天视图控制器,它支持定制的单元格

Unity3D 研究院之IOS高级界面发送消息与Unity3D消息的接收

今天和盆友们讨论IOS的高级界面与unity3d游戏引擎的交互,这个在开发中是非常重要的,unity3d 毕竟是一个面向多平台的一个游戏引擎,它不可能全部为IOS 考虑的面面俱到,引擎中也不存在针对IOS的高级界面的控件的使用. 本例实现游戏背景是Unity3D 的游戏世界,前面添加4个IOS的高级界面的按钮,并且点击这些按钮可以将消息传递给背景的Unity3D ,让它做一些事情. 上一章介绍了触摸IOS屏幕 移动摄像机的位置,下面有盆友问我说他不想移动摄像机的位置,就想移动物体的位置,我在这里

BAT架构师教你如何三个月从开发瓶颈期进阶iOS高级架构师?

前言: 最近好多人私信问我,该怎样才能成为架构师,还有一个就对当前的状态感到迷茫.我在此做一个简单的说明,或者对迷茫中的你来说有些许帮助. 如果你是想成为iOS架构师,那么你首先要是一个iOS高级攻城狮.也就是说,基础底层知识必须牢固,对iOS的了解全面而且深入. 有很多人对现在的工作感到很没意思,因为当前的工作,完全是实现业务,技术上没有任何提高.在这种状态下就会感到迷茫,特别是一想到将来这种迷茫感就更强烈了. 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:

新浪微博资深大牛全方位剖析 iOS 高级面试 高清无密

新浪微博资深大牛全方位剖析 iOS 高级面试 面试没底气?拿不到满意的offer?本课程从一线互联网企业的面试.笔试真题入手,以iOS技术体系为主线,深度剖析面试常用考点,让你面试有底气:同时会深入考点背后的技术原理.机制等高级知识,助你拿到满意的offer! 第1章 课程简介 本章对这门课程所讲述内容进行概要介绍,其中包括课程目标.适合人群,课程特色.课程收获.课程安排等.整个课程学习完结后,有机会获得电话模拟面试及内推. 1-1 课程导学 第2章 教你写份好简历(简历写的好,好机会更多) 本

iOS高级开发——CollectionView的cell中按钮的点击实现

在我刚初学iOS的时候,我就问一些大神,iOS开发中最难的哪些部分.有些人就说是自定义控件.UI和交互设计.那个时候我将信将疑,随着自己开发的深入,自己的确是深有体会.开发一款App产品,很大一部分时间是在和UI打交道.因为开发中很多功能是直接封装好的或者有现成模板可以用的,唯有UI是根据不同的App千变万化的.所以今天我们继续来研究iOS中比较高级的控件--UICollectionView,来实现cell中按钮的点击操作.该demo我已经提交到: https://github.com/chen