runtime和runloop问答】的更多相关文章

Runtime 01 问题: objc在向一个对象发送消息时,发生了什么? 解答: 根据对象的 isa 指针找到类对象 id,在查询类对象里面的 methodLists 方法函数列表,如果没有在好到,在沿着 superClass ,寻找父类,再在父类 methodLists 方法列表里面查询,最终找到 SEL ,根据 id 和 SEL 确认 IMP(指针函数),在发送消息: 03 问题: 什么时候会报unrecognized selector错误?iOS有哪些机制来避免走到这一步? 解答: 当发…
runtime是运行时机制,就是运行到的时候才会执行的机制(类似于栏加载)属于时间先后性质的 runloop 是主线程的运行的意思   属于 (loop) 循环性质的 以下是 具体点的 解释: runloop是事件接收和分发机制的一个实现. Runloops是线程的基础架构部分.一个runloop就是一个事件处理循环,用来不停的调配工作以及处理输入事件.使用run loop的目的是使你的线程在有工作的时候工作,没有的时候休眠. Run loop的管理并不完全是自动的.你仍必须设计你的线程代码以在…
什么是runtime runtime就是运行时,是系统在运行时的一些动态机制,它是一套底层的API,我们平时编写的OC代码,最终会转换为runtime实现. runtime的作用 可以利用runtime获取一个类的属性列表,可以通过runtime拿到一个类的所有成员属性. 首先要导入runtime.h的头文件 #import <objc/runtime.h> 此处以获取Person类(事先已经定义好,有三个成员属性age.name.height)的成员变量为例,代码如下 // 定义一个无符号整…
前言:公司项目终于忙的差不多了,最近比较闲,想起叶大说过的iOS面试三把刀,GCD.runtime.runloop,runtime之前已经总结过了,GCD在另一篇博客里也做了一些小总结,今天准备把runloop搞一下,之前看了很多资料,也按照对应的在项目中的应用点写了几个demo,其中两个demo非原创,直接拿过来借花献佛了.今天才有时间把它们总结一下,并记录下来.关于runloop的基础知识我就不多介绍了,网上一堆介绍的文章,这里只说实际项目中的使用点,毕竟东西是拿来用的. 1.关于轮播图 第…
近一年内陆续面试了不少人了,从面试者到面试官的转变让我对 iOS 招聘有了更多的感受.经过了前段时间的一大波面试,我们终于找到了志同道合的小伙伴,面试也暂时告一段落了.总结下面试人过程中的感受,你也可以读到我们对简历.算法.性格.iOS 基础.底层知识的看法和一些常问的面试题. 一个靠谱的简历 简历非常能反映一个人的性格和水平,相比于你在学校获得多少奖项,工作经历.项目经历.熟悉的技术等更加关键,如果还有博客和一些 Github 上的项目,好感度++,但记得在去面试前收拾下,我们真的会挨个文件…
一个靠谱的简历 简历非常能反映一个人的性格和水平,相比于你在学校获得多少奖项,工作经历.项目经 历.熟悉的技术等更加关键,如果还有博客和一些 Github 上的项目,好感度++,但记得在去面试前收拾下,我们真的会挨个文件 review 你的开源代码的.我们还喜欢关注一些细节,比如简历里关键字的拼写,看似无关紧要但很能反映出对自己的要求,经常见一个简历中 iOS 这三个字母的拼写就出现 IOS.iOS.ios 三种的,非常不能忍,再列举几个常见问题: iPhone -> IPHONE IPhone…
觉得很瘦感触,因此转发:http://blog.sunnyxx.com/2015/07/04/ios-interview/ 近一年内陆续面试了不少人了,从面试者到面试官的转变让我对 iOS 招聘有了更多的感受.经过了前段时间的一大波面试,我们终于找到了志同道合的小伙伴,面试也暂时告一段落了.总结下面试人过程中的感受,你也可以读到我们 对简历.算法.性格.iOS 基础.底层知识的看法和一些常问的面试题. 一个靠谱的简历 简 历非常能反映一个人的性格和水平,相比于你在学校获得多少奖项,工作经历.项目…
因为最近面试了一些人,校招.初中级.高级.架构师,各种级别的,发现大家水平差异很大,有的高级的工程师很多问题都回答不上来,所以想梳理下iOS的知识点,写成一个系列,如果时间允许的话,会录制成视频放到网易云课堂里. 写的时候 不一定按 这个顺序 写,可能会跳跃来写. 后面也会不断补充章节. iOS开发系列之 - 基础篇 一.常用的UI控件 UITableView.UICollectionView 等 二.网络通信 三.多线程 NSThread.GCD.NSOpeartion 四.数据持久化 五.r…
资料先行 GCD 深入理解:第一部分 GCD 深入理解:第二部分 以上两篇文章是关于GCD讲的比较好的文章,翻译自raywenderlich,该网站有很多关于iOS 开发的优秀文章. 引子 iOS 开发中有三大进阶性的技术点,分别是GCD.runtime 和runloop.其中GCD用的最多,runtime也有不少使用场景,runloop在系统的API里体现的比较多,项目里实际使用比较少. 一直都想就这三个技术点做一些总结,没事的时候可以回来复习巩固一下,可是记录了很多要写的点,但是文章却是一拖…
OC中的method其实是一个结构体 struct objc_method{ SEL method_name char *method_types IMP method_imp } SEL是方法名,IMP其实就是一个C函数的指针,可以直接强制转换的,runtime中的IMP可以直接操作这些函数 方法调用流程:Objective-C 消息转发都会转发为objc_msgSend(receiver,@selector(message)) iOS 设备流畅基于runtime和runloop,高效的消息转…