ios-面试-runtime(一)
面试过程中会被问到很多问题,基础问题/数据结构/项目经验/非ios语言(flutter、js、html,大前端)。
ios内的问题包括但不限于,
run time、run loop、属性及其修饰符、block原理及应用、Category、消息传递消息转发和其他底层原理等。开发基础方面,内存管理、多线程简直场场必问,然后就是iOS性能优化、设计模式、常用库、socket、tcp和udp。
偏向短视频音频的、偏向数据处理方面的数据结构和各种算法、偏向电商的框架优化页面滑动优化等。
那么接下来,就按照这些列举的,做一些面试方面知识积累。
各位观众或者仁兄如果有知道其他问题,欢迎下面留言分享,一起积累学习。
runtime
runtime,这个东东是ios开发如何也绕不过的坎,在整个ios开发中知道不知道的地方用到的很多。
what它是什么东东?
1,runtime是一种机制,是一些特性和特点的综合。
2,runtime直译的意思是运行时,这是runtime这个机制最大的特性,运行时是指数据的类型是在运行时确定的,而不是编译时。疑问点Xcode中编译(common + B)和Archive具体又做了哪些工作
3,Runtime是一套比较底层的纯C语言的API,属于1个C语言库,对外提供很多底层的C语言API
4,Objective-C需要Runtime来创建类和对象,进行消息的发送和转发。并且Objective-C编写的代码在运行时会被转换C语言代码,runtime在转换过程中占据重要作用。
where它被运用那些方面?
1,在程序运行过程中,动态的创建类,动态添加、修改类的属性方法。
(1)把写好分类的方法和属性添加到系统类中;
2,遍历一个类中所有的成员变量、属性和所有方法
(1)获取对象的属性、私有属性;(2)字典转换model;(3)KVC、KVO;(4)归档;(5)NSClassFromString class<->字符串;
3,消息传递、转发
(1)方法交换;(2)block
等等……
how它是怎么运用的?
这具体调用那些api实现,后面再来补充。
Rumtime是Objective-C语言动态的核心,Objective-C的对象一般都是基于Runtime的类结构,达到很多在编译时确定方法推迟到了运行时,从而达到动态修改、确定、交换...属性及方法
遇到,记录,分享~~