子曰:“温故而知新,可以为师矣。”
去年10月份就买了这本书,一直等到这两天才看完,不得不鄙视一下自己的执行力。为了学习iOS应用的开发,我在买这本书之前买过一本国人写的《UIKit 详解》,那本书主要是列举了一下UIKit库中常用的一些类的API和用法,当字典查还勉强过得去,但还远远算不上一本合格的iOS开发教程。后来觉得自己水平还需要再提高提高,于是就上豆瓣找到了这本评分高达9.2分的《iOS编程(第4版)》。
总的来讲,这本书以动手实践为核心思想,通过几个实例项目将不同的理论知识串联起来讲解,作者提出了“边做边学,概念与代码并重”的教学理念,所以对于读者来说,动手才是学习的开始,看得见的成果也会激发学习者的兴趣。
这本书设计的知识面广,涵盖了iOS开发的方方面面,包括Objective-C基础语法知识,AppKit库,常见的Cocoa设计模式,XCode技巧,Instruments等,对于iOS开发初学者来说已经足够了,但是要想更加深入的了解各个知识模块,就还得靠自己从其他途径去挖掘了。平心而论,这本书配得上9.2分。
前言
1.优秀的iOS程序员的三要素:
- 熟练掌握Objective-C语言(推荐阅读《Objective-C编程》、《Effective Objective-C 2.0》、《Objective-C高级编程 : iOS与OS X多线程和内存管理》)
- 熟练掌握 Cocoa 的常用技术:包括内存管理、委托机制(delegation)、固化机制(archiving),以及如何正确使用视图控制器(view controller)
- 熟练掌握系统框架(framework):能够自己通过阅读并理解Apple的参考文档来学习iOS SDK中的一些类和方法。
iOS开发究竟要学些什么呢,这里借用一张iOS学习路线图(感谢原作者,不过很抱歉忘了出处了):
2.作者提出的一些教学理念很值得我们学习:
- 跟其他任何领域的学习一样,有些知识是学习iOS编程必须要知道的,而且要非常了解。
- 学习能立即派上用处的知识,效果最佳。
- 理论与实践并重时,效果最佳。
- 实际操作很重要,建议先输入代码,再理解含义,“找出错误并修正代码”是学习编程的好办法,学习者通过调试可以更加彻底地理解代码。
- 学习新东西要有耐心,要有“败不馁”的精神,“书读百遍,其义自现”。
- 学习时最好制定一个合理的目标,每天在某一固定时间段里找一个安静的地方集中精力学习,最好与外界切断联系,如微信等。
- 保证足够的睡眠。
- 找个好“老师”,如果可以的话。
其实学习编程和学习写作的诀窍是一样的,总结起来就是“三多”——多写(亲自动手练习才能有所体会),多读(看看别人是怎么写的),多想(学而不思则罔)。
第一章 第一个简单的iOS应用
这一章主要介绍了
要点:
- 项目导航面板中的组只用来整理文件,与文件系统无关。也就是说图01中我们所看到的黄色的文件夹,不一定对应finder中的文件目录。另外需要注意的是,在添加新文件时,我们一般选择create groups,而不是Create folder references,如图02所示。
扩展阅读:
-
添加文件到工程中时的选项:
http://blog.csdn.net/yqmfly/article/details/45718157 -
项目工程中的folder references和groups:
http://www.jianshu.com/p/488c56b4feb6 -
Explanation of Xcode settings for folders added to project:
http://stackoverflow.com/questions/8851144/explanation-of-xcode-settings-for-folders-added-to-project
2.在新建文件时确保选中了Target中的勾选框,选中后,XCode在构建项目时才会一起编译新加入的文件,如图03所示。
扩展阅读:
-
官方文档Xcode Target:
https://developer.apple.com/library/prerelease/ios/featuredarticles/XcodeConcepts/Concept-Targets.html#//apple_ref/doc/uid/TP40009328-CH4-SW1 -
Xcode中的 workspace, project, target, scheme:
http://www.jianshu.com/p/1308a199f168 -
XCode: Target Settings和Project Settings的区别:
http://blog.csdn.net/a351945755/article/details/8079276 -
XCode工程中 Project 和 Targets区别:
http://blog.csdn.net/zhaozy55555/article/details/8557175 -
ios开发时,在Xcode中添加多个targets进行版本控制:
http://blog.csdn.net/ysysbaobei/article/details/10951991 -
猿题库iOS客户端的技术细节(一):使用多target来构建大量相似App:
http://blog.devtang.com/2013/10/17/the-tech-detail-of-ape-client-1/ -
Xcode基本介绍:
http://blog.csdn.net/phunxm/article/details/17044337
3.MVC(Model-View-Controller)设计模式是iOS开发中频繁使用的一种设计模式。其含义是,应用创建的任何一个对象,其类型必定是模型对象、视图对象或控制器对象三种类型中的一种。
- 视图对象(View):用来构建用户界面,展示内容。
- 模型对象(Model):负责存储数据,与用户界面无关。
- 控制器对象(Controller):扮演“管家”角色,它用于控制视图对象(View)为用户呈现的内容,以及负责确保视图对象(View)和模型对象(Model)的数据一致。
>模型对象(Model)和视图对象(View)没有直接产生联系,而是由控制器对象(Controller)负责彼此间的消息发送和数据传递。
扩展阅读:
-
官方文档Model-View-Controller:
https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html