人生几何?

iOS开发面试中需要牢牢记住的几个知识点

2021-10-19  本文已影响0人  iOS丶lant

如何分析dSYM?

dSYM是什么?

Xcode编译项目之后,我们会看到一个同名的dSYM文件,dSYM是保存十六进制函数地址映射信息的中转文件,我们调试的symbols都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的dSYM文件,位于/User/<用户名>/Library/Developer/Xcode/Archives目录下,对于每一个发布版本我们都很有必要保存对应的Archives文件;

dSYM文件有什么用?

当我们软件release模式打包或上线后,不会像我们在Xcode中那样直观的看到用崩溃的错误,这个时候我们就需要分析crash report文件了,iOS设备中会有日志文件保存我们每个应用出错的函数内存地址,通过XcodeOrganizer可以将iOS设备中的DeviceLog出成crash文件,这个时候我们就可以通过出错的函数地址去查询dSYM文件中程序对应的函数名和文件名。大前提是我们需要有软件版本对应的dSYM文件,这也是为什么我们很有必要保存每个发布版本的Archives文件了。

如何将文件一一对应?

每一个xx.appxx.app.dSYM文件都有对应的UUID, crash文件也有自己的UUID,只要这三个文件的UUID一致,我们就可以通过他们解析出正确的错误函数信息了。

关于多线程

多线程分类

如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。

多线程的原理

同一时间,CPU只能处理1条线程,只有1条线程在工作(执行)多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象思考:如果线程非常非常多,会发生什么情况?CPU会在N多线程之间调度,CPU会累死,消耗大量的CPU资源每条线程被调度执行的频次会降低(线程的执行效率降低)

多线程的优点

能适当提高程序的执行效率能适当提高资源利用率(CPU、内存利用率)

多线程的缺点

线程需要占用一定的内存空间(默认情况下,主线程占用1M,子线程占用512KB),如果开启大量的线程,会占用大量的内存空间,降低程序的性能线程越多,CPU在调度线程上的开销就越大程序设计更加复杂:比如线程之间的通信、多线程的数据共享;

GCD与NSOperation的比较

总结

如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。

单例的弊端

优点:

缺点:

介绍下App启动的完成过程

App启动过程

程序执行

引起App启动过慢的因素

0x8badf00d表示什么?

防止反编译

需要了解的第三方原理或者底层知识

RuntimeRunloopblockSDWebImageAFNYYCacheGCD等等底层实现

文末推荐:iOS热门文集

上一篇下一篇

猜你喜欢

热点阅读