iOS面试一战到底
上QQ阅读APP看书,第一时间看更新

前言

首先,感谢你在众多技术教程中选择本书作为学习的帮手。我希望在你的学习过程中,通过本书可以帮你掌握iOS开发的核心技能、扩宽编程思路,在学习和工作中不仅知其然,更知其所以然,从本质上提高代码质量与编程能力。

本书是一本针对iOS开发职位面试的技能特训图书。所谓特训,即本书所讲内容有着明确的目标:帮你显著地提高面试能力,快速掌握技术面试中考查频率高、易错率高的核心知识点。

从内容上讲,本书的每一章都可以作为一个独立的专题模块。章与章之间有一定的先后顺序与关联性,但是这种关联性并不强。如果你对某一章内容不感兴趣,或者对某一章所讲内容已经能够熟练掌握,那么你完全可以跳过本章进行阅读学习。同样,你也可以将本书作为一本工具书,在日常开发中查询某些知识点的用法,或者在技术面试前夕进行突击训练。

本书共分为8个章节,各章主要内容概述如下:

第1章没有涉及具体的技术知识,主要向读者介绍面试前需要做的准备。机会总是留给有准备的人,充足的准备工作可以帮助你更高概率地获得心仪的工作。

第2章介绍编程中常用的23种设计模式。设计模式可能并不是初学者的必修课,但是无论是对代码质量的提高,还是对优秀编程思路的培养,设计模式都起着至关重要的作用。在技术面试中,设计模式也是经常需要考查的技能点。本章会详细地介绍23种常用设计模式的原理、应用场景并且提供代码示例,帮助读者理解并使用这些设计模式。

第3章介绍iOS开发中一些核心数据类型的底层原理。这些数据类型都是我们日常开发中经常用到的,很多时候越常用到,误区就越容易被忽略。本章将对这些容易忽略的误区做系统介绍。

第4章将介绍编程中常用且基础的算法。对基础算法的掌握反映了一个开发者的基础思维能力,这也是面试中经常会考查的一项能力。本章将介绍与算法相关的复杂度的概念,并全面介绍有关查找、排序和树相关的算法。

第5章将对Objective-C和Swift编程语言中容易用错和容易遗漏的核心知识点进行介绍,包括内存管理、代码块、运行循环、可选值和泛型等。这部分内容有一些深度,对初学者来说会略微有些难度,掌握它们是成为高阶开发者的必经之路。

第6章将介绍iOS开发中界面开发相关的技术。本章会将重点放在iOS程序界面渲染的核心流程和原理上,提供给读者从本质上优化iOS程序界面渲染性能的思路。本章会涉及iOS自动布局技术的原理、图形绘制和动画的原理等。

第7章是相对比较独立的一个章节,会系统地介绍iOS开发中常用的多线程技术。多线程技术也是面试中的必考点,其本身简单,但是内容松散、容易遗忘,本章内容可以很好地帮助你组织记忆。

第8章是本书的最后一章,主要介绍与iOS应用上架的相关内容。对于没有上架经验的读者来说,本章内容十分重要,可以帮助你熟悉应用上架要做的准备和整体流程。

本书中的所有范例都提供了源代码参考,并且本书每一章的结尾都提供了一些面试场景,以供读者进行练习。可以扫描下述二维码获取源代码:

如果下载有问题或需要技术支持,请联系booksaga@126.com,邮件主题为“iOS面试一战到底”。

最后,本书能够成功出版,首先要感谢清华大学出版社的王金柱编辑,在笔者的写作过程中,王编辑提供了大量的宝贵建议。同时,笔者的家人和朋友也提供了无私的支持与帮助,没有大家的无私付出,本书无法呈现在你的手上。希望本书最终可以发挥价值,带给你更多的收获。

张益珲

2020年6月20日