一直想写这么一个东西,长期以来我发现不少初学者的问题在于不掌握学习的方法,因此,Xcode那么好的SDK文档摆在那里,对他们也起不到什么太大的做用。从论坛、微博等等地方看到的初学者提出的问题,也暴露出他们不知道不少他们的疑惑其实在文档里面写的很是清楚。而有时候当他们想从文档去找解决方案的时候,也每每找不到。或者有些人意识到了,阅读文档是学习的好办法,可是不得要领。程序员
中国的技术社区有一个很没意思的毛病,就是技术深了,看不懂骂不知所云,技术浅了,看得懂骂没有技术含量。不过管那么孙子作啥,对于如今可能还不知道怎么阅读文档的人,但愿这篇文章有所教益吧。编程
如上图,打开后,整个文档界面有左面的侧栏和右面的内容区域构成。左面的侧栏能够选择不一样的文档库。你的Xcode里面通常来讲有一组不一样版本的iOS文档库、一组不一样版本的OS X文档库,以及一个Xcode文档库。安全
若是你这里没有你要查看的文档库,你能够选择Xcode的Preferences菜单,而后选择Downloads -> Documentation。在这里能够看到已经下载安装了的文档库,尚未下载的文档库,能够酌情选择。以下图:网络
而后咱们看,文档内容区域的左侧导航区域,这里揭示了文档库的结构。以下图:架构
首先是,Resource Types,也就是资源类型。文档库里面所有的文档都是这几个类型中的一个:框架
总结一下,这里面的Reference、Release Notes、Sample Code、Technical Notes、Technical Q&A,通常来讲只是备查的。主要要看的是Getting Started和Guides。异步
而后下面是Topics,也就是话题,被分为:编辑器
这里很少说,大多数都是顾名思义的问题。可是值得一提的就是有不少初学者说,我想好好了解下图形和动画的技术,可是文档里面找不到,这就只能说,你睁着大大的眼睛,为毛左看右看看不到呢?ide
最下面是Frameworks(框架),分为:函数
这里咱们先不讨论这个东西,后面会仔细讲。
整体来讲左边的导航区域就是用三种不一样的维度,来帮你精准定位你须要的内容。
如今咱们看内容区域的右边。注意上面的文档过滤器。以下图:
假设,你如今想看关于性能方面的Guides,那么你应该作的就是在左面的导航,点击Topics -> Performance,而后在右边的文档过滤器上面输入Guides。或者你也能够在左边的导航,点击 Resource Types -> Guides,而后在文档过滤器里面输入 Performance。
熟练使用导航和文档过滤器的话,学习就会很是方便快捷。
前面咱们讲Xcode的文档结构是在介绍如何可以快速定位到你要找的内容。可是不少人的问题多是一开始就根本不知道要读什么。
这里咱们就介绍自学iOS开发应该遵循或者说咱们推荐的必读文档的阅读顺序。
阅读顺序:
首先应该看的是Getting Started里面的《立刻着手开发 iOS 应用程序 (Start Developing iOS Apps Today)》(中英文版本皆有,苹果官方的翻译)。这个文档讲的很浅,可是是创建概念的文档,你之后在开发里面常常遇到的概念,在这里都有包含,特别注意是,这个文档看起来简单,可是每页下面的相关文章,不是选读,都是必读。
即便是不少作了iOS开发好久的同窗,其实也有不少概念上的误解,现代程序开发愈来愈简单,工具愈来愈强大,每每有些误解也能够继续前行,可是实际上不创建扎实的基础是很吃亏的,每每后面理解和解决一个不难解决小问题都要付出不少辛苦。
阅读这个文档的目的和检测标准是,之后你看到iOS开发中的基本概念,都大体全部了解。
读完《立刻着手开发 iOS 应用程序 (Start Developing iOS Apps Today)》后,应该去看Your XXX iOS App系列这个系列不是什么很难的文章,你也没必要着急先去学习Objective-C,学什么C语言就更不要着急。我推荐的学习方法是有成就的逐步学习法。在学习系统体系架构、Objective-C以前,你能够先按照文档写一个全天下最简单的App,完成学习过程当中第一个里程碑。在这个过程当中不用担忧有什么疑问,有什么不懂,先照着作就是。
阅读这三个文档的目的和检测标准是,把这三个Demo App作出来在模拟器上跑起来。
在这个过程当中,你对开发工具的基本认识就创建起来了,也有了成就感,去了魅(就是消除了对iOS开发的神秘感)。
再往下,建议你去看《iOS Technology Overview》(iOS技术概览),iOS不是一个技术,而是一堆技术,前一篇讲到文档导航区域的分类,框架分类的时候,我说不细讲的缘由就在于此,你要作一个动画应该用Core Animation仍是OpenGL?你要作一些文本相关操做应该用Core Text仍是什么,就是看这里。
学习现代的程序开发,语言和框架并重。咱们Tiny4Cocoa叫作这个名字的缘由就是,iOS/Mac开发者的表明每每就是这个Cocoa框架,就是这个SDK。大多数你所须要的功能都躺在框架里面,你知道框架的结构,你才知道怎么去寻找相关的技术资料。
阅读这个文档的目的和检测标准是,遇到具体问题,知道应该去看哪方面的文档。
再下来,建议阅读的是《iOS Human Interface Guidelines》,Mac/iOS平台虽然也是百花齐放各种程序、App都有,可是整体看来,大多数优秀App的UI看起来都和整个系统很协调。这和Windows以及不少其余平台彻底不一样。这是为何呢?
很大程度就归功于《Human Interface Guidelines》文化,所谓Human Interface Guidelines就是用户界面的规范,在苹果它还专门有一个缩写叫作HIG,是天条同样的东西。全部的App都推荐遵循HIG,遵循了HIG,你作的东西用户看起来就会以为和整个系统很协调。即便是你要作一些创新的设计,你势必会打破HIG的限制,可是你这个时候仍旧应该遵循HIG的精神。
此外,你阅读HIG的很重要一点是了解整个UI结构和UE行为的逻辑机理,这样才能在你设计界面的时候有所依据。
阅读这个文档的目的和检测标准是,看到任何一个App,你能够知道它的任何一个UI是系统控件,仍是自定义控件,它的层次关系等等。
《Learning Objective-C: A Primer》是很是初级和简单的入门,适合先阅读。《Programming with Objective-C》超微复杂一点点,适合后阅读。
通常人建议先学习语言,我反之建议先作了一个App,而后再学习语言。缘由有几个,首先现代开发工具,每每不是用来开发控制台程序的,上来就会有框架,光懂语言不会使用IDE,甚至可能会更麻烦。再其次就是,其实现代语言发展到了面向对象之后,库每每比语言更复杂,更重要,或者说更多的时候,咱们是在学习库,而不是语言,语言只是库的一个载体。
好比,Delegate和Block等等都和Cocoa的UI异步机制关系紧密,光看代码,这些语言元素很是难以学习,也彻底不知道其意义在哪里。
阅读这个文档的目的和检测标准是,看得懂基本的Objective-C代码,方便后面的学习和阅读各类示例代码。
《iOS App Programming Guide》基本上介绍的就是开发一个App的完整流程,包括App的生命周期、休眠、激活等等,里面介绍的细节颇多。正式开发第一个上线的App以前必看。或者开发了一个App,临到提交前必看才文档。
阅读这个文档的目的和检测标准是,了解所有流程和不少细节问题。
《View Programming Guide for iOS》和《View Controller Programming Guide for iOS》很是重要。View是整个图形界面里面最重要的概念。全部的图形、界面绘制都基于View。你看到的一切复杂的用户界面,就是各类不一样的View的组合堆叠。
View Controller是View和某种逻辑在一块儿的组合,本质上这种组合不是必须的,可是是大大下降编程复杂度的一种设计。不少人不懂什么是View什么是View Controller,这样写起代码来就很痛苦。
阅读这个文档的目的和检测标准是,深入理解什么是View,什么是View Controller,理解什么状况用View,什么状况用View Controller。
UITableView是最重要的一个控件,是最经常使用的UI界面元素。在UICollectionView出现以前,大量的内容列表展现的自定义控件都是基于UITableView,好比不少书架、图片Grid其实都是UITableView作的。
因此《Table View Programming Guide for iOS》很是重要,必定要好好阅读。
阅读这个文档的目的和检测标准是,深入理解UITableView/UITableViewController的理论和使用方法。
我推荐的必读文档就这么多,仔细看的话,最多也就是今天就看完了。学习一个东西,若是有一点点耐心,有正确的方法其实不难,不是说脑子非要很聪明,大多数人均可以作到一个星期就学会iOS开发,其实就是读完这些文档,大多数人就会了。
就像我强调了无数次,阅读英文文档不难,我本身从当年看英文文档很是吃力,必须查词典开始,认真的看英文文档,不会就查词典,一个多月过去,读英文文档就彻底不须要查词典了。
咱们公司主程 @sycx 老师,也说他原来英语也很很差,甚至如今英语仍旧很烂,可是看英文文档彻底没有问题,也就是几个星期的认真学习之后就突破了。
其实学习iOS也如此。固然我不是说你看懂这10组文档就不再用看别的了。而是说,若是你看懂了这10组文档,你就从初学者,或者是虽然会写一些程序,可是对iOS其实还不懂的状态,变成了一个入门者。
我不但愿这个文章能够一句一句的帮你学会iOS是什么,这个文章的目的是帮你快速入门。一旦你入门了,你再遇到问题该看什么,你就不须要我讲了,你本身就知道了。一旦入门了,你就会发现,Xcode里面别的文档讲的内容虽然不一样,可是结构你已经很清楚了,你学习起来很方便。
阅读本文的目的和检测标准是,遇到问题,知道看什么文档,想提高本身技术的时候,知道按照什么脉络本身组织阅读。
最快捷的查询帮助文档的方法是不须要键入任何关键词的。你只须要在Xcode代码编辑器里,按住Option键,而后点击你想查询的关键词,就会得到关键词的帮助信息。以下图:
帮助信息会包括,一些简单的描述、哪一个iOS操做系统开始提供,头文件,参考文档。头文件和参考文档是能够直接点击的。
即便你点击的关键字不是Cocoa库的内容,是本身代码里面的类或者方法,也能够得到相关的定义信息。以下图:
与之相关的热键是Command键加鼠标点击,便可跳到任何一个类名或者方法名的所定义的头文件。
快速查询帮助的另一个方法是直接打开Quick Help栏,以下图,首先找到“右侧栏开关”,而后找到“Quick Help”开关便可打开。
Quick Help栏的做用机制是,只要它在打开状态,只要输入光标在什么关键字上,Quick Help栏就会显示跟关键字相关的简要帮助信息,跟Option键加点击的信息基本一致,但可能略微丰富一点。
写代码的时候,在大多数状况下,查询下快速帮助,看看头文件,就足以了。
文档阅读界面最左面的上端的放大镜按钮就是搜索界面。下图是咱们搜索uiimage,获得的搜索结果。
首先值得注意的是,结果也是分类的,分为Reference、System Guides、Tools Guides、Sample Code这四类。类别很利于咱们快速找到咱们须要的信息。前面已经介绍过类别,跟那个基本一致,参照便可。
另外须要注意的是,搜索框下面的选项,首先是Hits Must(什么样的结果才会命中),包含了三项:
而后是Languages(语言选项),包含Javascript、C++、Java、Objective-C、C语言。
而后是,Find in(在哪些文档库搜索),包含了你Xcode里面安装的所有文档库。
最后,咱们简单介绍下怎么阅读文档。文档的阅读界面以下图:
值得注意的是,标题下面这几样:
在其次一个很重要的东西,实际上是标题上面那一条窄窄的导航栏,那是一个多层树状导航栏,看文档的时候,能够点击那个栏的不一样位置浏览。
其实这个栏包含了整个文档库的组织结构树状图,惋惜只有在这个界面才能浏览。有兴趣的能够慢慢浏览,里面信息量其实很是大。