当前位置: 首页 > wzjs >正文

金融网站建设方案ppt百度快速排名优化工具

金融网站建设方案ppt,百度快速排名优化工具,网站排名做不上去吗,甘肃城关区疫情最新数据消息新闻iOS高级开发工程师面试——RunLoop 一、什么是 RunLoop? RunLoop 作用有哪些?二、 app 如何接收到触摸事件的 ?三、为什么只有主线程的RunLoop是开启的?四、为什么只在主线程刷新 UI ?五、PerformSelector和RunLoop的关系 ?六、如何使线程保活?七、子线程默认有RunLoop吗…

iOS高级开发工程师面试——RunLoop

  • 一、什么是 RunLoop? RunLoop 作用有哪些?
  • 二、 app 如何接收到触摸事件的 ?
  • 三、为什么只有主线程的RunLoop是开启的?
  • 四、为什么只在主线程刷新 UI ?
  • 五、PerformSelector和RunLoop的关系 ?
  • 六、如何使线程保活?
  • 七、子线程默认有RunLoop吗? RunLoop 创建和销毁的时机又是什么时候呢?
  • 八、RunLoop有哪些 Mode 呢?滑动时发现定时器没有回调,是因为什么原因呢?

一、什么是 RunLoop? RunLoop 作用有哪些?

RunLoop 可以称之为运行循环,在程序运行过程中循环做一些事情,如果没有 RunLoop 程序执行完毕就会立即退出,有 RunLoop 程序会一直运行,并且时时刻刻在等待用户的输入操作RunLoop可以在需要的时候自己跑起来运行,在没有操作的时候就停下来休息。充分节省CPU资源,提高程序性能。

  • 基本作用
    1. 保持程序持续运行。程序一启动就会开一个主线程,主线程一开起来就会跑一个主线程对应的 RunLoopRunLoop 保证主线程不会被销毁,也就保证了程序的持续运行。

    2. 处理App中的各种事件(比如:触摸事件,定时器事件,Selector 事件等) 。

    3. 节省CPU资源,提高程序性能。程序运行起来时,当什么操作都没有做的时候,RunLoop 就告诉 CPU,现在没有事情做,我要去休息,这时 CPU 就会将其资源释放出来去做其他的事情,当有事情做的时候 RunLoop 就会立马起来去做事情。

二、 app 如何接收到触摸事件的 ?

  1. APP进程的mach port接收来自SpringBoard的触摸事件,主线程的RunLoop被唤醒,触发source1回调。

  2. source1回调又触发了一个source0回调,将接收到的IOHIDEvent对象封装成UIEvent对象,此时APP将正式开始对于触摸事件的响应。

  3. source0回调将触摸事件添加到UIApplication的事件队列,当触摸事件出队后UIApplication为触摸事件寻找最佳响应者。

  4. 寻找到最佳响应者之后,接下来的事情便是事件在响应链中传递和响应

    那么事件响应链是如何传递的呢 ? 可简称为 “由父及子” 的过程,即:

    • 触摸事件的传递是从父控件传递到子控件
    • 也就是从UIApplicaiton->window->寻找处理事件的最合适的view
      两个重要的方法:
    // 获取响应 事件的视图,通过下面的方法判断触控点位置 
    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;// 判断触摸点是不是在这个view的坐标上。如果在坐标上,会分发事件给这个view的子		view。后每个子view重复以上步骤,直至最底层的一个合适的view。
    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event;
    

    在这里插入图片描述
    那么事件响应链是如何响应的呢?可简称为 “由子及父” 的过程,即:

    1. 事件响应会先从底层最合适的view开始,然后随着上一步找到的链一层一层响应touch 事件。默认touch事件会传递给上一层。
    2. 如果到了viewControllerview,就会传递给viewController
    3. 如果viewController不能处理,就会传递给UIWindow
    4. 如果UIWindow无法处理,就会传递给UIApplication
    5. 如果UIApplication无法处理,就会传递给UIApplicationDelegate
    6. 如果UIApplicationDelegate不能处理,则会丢弃该事件。
      在这里插入图片描述

三、为什么只有主线程的RunLoop是开启的?

app启动前会调用main函数,具体如下:

int main(int argc, char * argv[]) {NSString * appDelegateClassName;@auto
http://www.dtcms.com/wzjs/198822.html

相关文章:

  • wampserver做动态网站海外市场推广做什么的
  • 重庆做网站的英雄联盟更新公告最新
  • 邯郸做网站费用杭州网站免费制作
  • 国外网站建设品牌新公司如何做推广
  • 外包做网站公司短视频运营
  • 淘宝这种网站怎么做的?合肥seo网站排名
  • wordpress seo 自定义结构郑州seo询搜点网络效果佳
  • 专题网站建站seo新手快速入门
  • 招聘网站可以同时做两份简历吗6百度推广app下载官方
  • seo查询爱站深圳网站搜索优化
  • 猪八戒做网站怎么赚钱搜索大全搜索引擎
  • 注册网站建设公司外链怎么做
  • 河南安阳滑县疫情最新消息排名优化公司口碑哪家好
  • 向国旗敬礼 做新时代好少年网站深圳企业网站制作
  • 建设工程项目报建网站网络优化工程师是做什么的
  • 做3d任务的网站谷歌建站
  • 做照片书的网站长春做网络优化的公司
  • 中央精神文明建设指导委员网站苏州做网站哪家比较好
  • 网站建设的网络品牌营销和市场营销的区别
  • 做装修效果图的网站计算机培训机构排名
  • 网站建设报价分析软文广告属于什么营销
  • 长沙网站的优化白度
  • 厦门专业做网站公司广州四楚seo顾问
  • 重庆新闻发布会seo文章生成器
  • 网站开发要用什么语言推广赚钱平台
  • 天河网站建设哪里好电子商务seo是什么意思
  • 网站开发业务方向架构文档自动发外链工具
  • 网站3d特效源码网络营销推广的手段
  • 网站建设公司无锡品牌网络推广
  • 做网站建设的合同范本企业网络营销策略分析