本书是我读研期间开始着手起草,到交稿给出版社为止,整整耗时一年半。在此之前,我一直对iOS技术情有独钟,充满兴趣和学习热情。回想过去四五年的iOS学习历程,很庆幸当时的决心和之后的坚持,正是这种决心和坚持使我能收获一项自己最擅长的技能。
我从大二开始接触iOS开发,那时候iOS 5刚刚发布,iOS技术刚火起来,而我已有的技术积累并不算多,所以学习难度非常大。当时,能够熟练开发iOS应用的同学真的是凤毛麟角,他们很让人敬佩,而这也更激发了我想学会iOS开发的欲望。为了学习iOS基础,我借阅了学校图书馆所有关于Objective-C的书,对于计算机基础还不扎实的我去自学Objective-C真的是很痛苦,各种iOS开发指南和开发案例的书也让我很吃力。好在那时候我做了一个正确的选择,用自己刚拿到的奖学金和攒下的钱毅然决然地买了一台低配的新款Mac Pro笔记本式计算机(就是2013年刚出视网膜屏幕且大大瘦身的那款,至今这台笔记本式计算机仍在我手中服役),这也是我能够长期保持学习热情以及后来深入iOS平台开发领域的敲门砖。
我最开始主要是拿别人的简单DEMO来学习,在别人写好的代码上改改、调调,我觉得这是入门最快的方法。在基本入门以后,我便开始系统地去看书、去验证,去实现自己的小想法,去尝试做一个小项目等。此外每当遇到问题,我都会去开发论坛交流,当时经常逛的网站有Cocoa China、Stack Overflow和GitHub等,在此过程中慢慢积累、慢慢武装自己。学习iOS的周期还是很漫长的,入门以后很长一段时间我并没有太大的提高,直到后来加入实际项目、参加公司实习以及能够研究一些优秀的开源代码之后,我才踏入进阶之路,同时也伴随着自己计算机专业水平的同步提高。事实上,我本科期间学习的汇编、编译原理、计算机组成原理、数据结构、数据库原理等,都一直在起着潜移默化的作用,而iOS技术的学习,则像是一个实践的平台,一个深入行业领域的路线。条条河流最终都是要汇入大海的,无论是一开始选择iOS开发、安卓开发,还是选择Web开发等路线,其最终目标都应该是借此打一口深深的井,钻下去然后慢慢扩散渗透,成为一名优秀的计算机行业专家,而不仅仅是一个初级平台开发者而已。
在编写整理本书期间,我从头到尾系统地梳理了自己的知识体系,不断地去验证、去挖掘重点、去剖析学习中最容易忽视的知识点,揭开我们学习中常常不愿意揭开的伤疤,然后认真地做出解析、敷上药膏。希望本书能够帮助更多的读者压缩这个学习过程的成本和周期,更快速地进入到更高的技术层面,更顺利地适应工作岗位,成为优秀的行业开发者。毕业后,我进入游戏行业,仍一直坚持iOS的使用和学习,这个长板对我尤其重要,是我平时想法和技术实践的主要移动平台。
本书技术部分将精选收录的题目进行了分类。第1章收录了iOS开发中的一些基础概念相关的问题;第2章和第3章分别归类了Objective-C语言从基础知识到中高级特性的问题,由浅入深地剖析了Objective-C语言开发各方面的核心问题;第4章收录的主要是有关官方Cocoa Touch框架的常见问题;第5章将iOS开发中的对象间通信机制相关的问题集中在一起,进行了总结和分析;第6章讨论了iOS中的一个重要话题:图层与动画,并结合问题进行了知识的总结和延伸;第7章总结了数据持久化有关的问题;第8章和第9章包含了iOS开发进阶之路的重中之重:内存管理和网络多线程编程;第10章收录了一些其他的重要的零碎话题,包括函数响应式编程、设计模式、第三方框架和程序调试问题等;第11章介绍了数据库相关知识;第12章介绍了操作系统相关知识。
对于书中的任何问题或困惑,读者都可以通过邮件联系我:
[email protected]。期待你的来信。
编 者
2018年5月