ios-面试

ios-面试-runtime(一)

2019-12-03  本文已影响0人  简鱼7819

面试过程中会被问到很多问题,基础问题/数据结构/项目经验/非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的类结构,达到很多在编译时确定方法推迟到了运行时,从而达到动态修改、确定、交换...属性及方法

遇到,记录,分享~~

参考大神资料https://www.jianshu.com/p/8b833813ed62

参考大神资料https://www.jianshu.com/p/291754a90d2b

上一篇下一篇

猜你喜欢

热点阅读