碎语
近些日子闲来无事,恰逢苹果派发布watchOS 2也有很长一段时间了,于是便打算深入研究WatchKit框架,刚好那天路过书城,便想淘两本好书回家充充电,却发现市面上关于AppleWatch的书籍寥寥无几,有些书籍涉及到的内容也只是浅尝即止,起不到多大帮助,还是官方文档最详细,正打算离去,突然被书架上一本名为《Xcode江湖录》的书籍提起一丝兴趣,看发行日期也是最近才上架的,大概翻看了一下,书中并没有多少高深莫测的内容,但是作者编写的方式却很有趣,全书都在围绕Xcode这一开发工具展开讲解,之所以书名中带有“江湖录”三个字,正如作者所说他想以一种轻松愉悦的方式讲解Xcode这个开发工具,让读者在谈笑间掌握Xcode常见的一些使用方法以及初步了解部分高级功能。
其实本书在撰写上,对于武侠小说的运用,也只是在前言或者章节开头部分,正文部分还是以规规矩矩讲解知识点为主,并无任何武侠段子插入,也没有华丽的辞藻修饰,毕竟技术类的书籍还是多一些严谨为好。作者的良苦用心还是值得称赞的,他既不想让此书归入平淡无奇的工具书一类,又不愿忽略读者的感受,对于初学者来说,确实有一些书籍比较枯燥乏味,难以保持学习兴趣。我想作者的初衷也正是希望撰写一本知识点丰富让人读起来却又不乏味的书籍。
当然,书中关于Xcode工具的某些细节,还是介绍的非常详细的。很多使用技巧确实在工作中也比较常用,在此我将书中提及到的比较好的知识点罗列出来,供读者参考,谢谢。(原书中的内容会有引用标志)
先引入原文中一段开场白
忆往初,谈笑中多少情仇恩怨;道不尽,生死间几许红尘缱绻(qianquan)。
世人常言,人在江湖,身不由己。但江湖之外何尝能体会到江湖中人的快乐?正有这样一位少年良辰,年方弱冠,便毅然决然地踏入了编程之路。年少之志,意气风发,欲挥斥方遒。试问哪位出入编程江湖之人的梦想或一生浪迹天涯,或成就一番功名,随后有朝一日其风流往事在某个小茶馆被小老儿这般人物评说。诸君可是这样认为的?初入江湖,首先就是要有一把趁手的兵器,恰逢苹果帮新推出了Swift这样一门简单,强大的内功心法,极大地降低了入门的难度,于是良辰便决心踏上修炼Xcode之路。经过一番打听,他来到了岚风谷......
1.Xcode界面初探
屏幕快照 2016-01-21 15.56.29.png1.1导航器区域
1-1上图(1-1)中最左侧的长方形区域为导航器区域,最上边依次分布着八个按钮,从左至右依次是项目导航器,符号导航器,搜索导航器,事件导航器,测试导航器,调试导航器,断点导航器还有日志导航器。
其中重点要提的是符号导航器,就是从左至右第二个按钮,它用于显示你的项目中或者说是你的代码中的类,对象,函数,变量以及属性等元素,这些元素统称为“符号”,如下图所示(1-2)。
当前符号导航器的显示方式为分层(Hierarchical),它会按照类的层级来显示符号,子类会被包含在父类中;另一种显示方式平坦(Flat)则是会将全部类显示出来,没有类的层级概念。符号导航器可以很好的帮助我们理清项目中代码之间的关联,当你到一家新的公司,接手了一个公司长期维护的项目,这个项目的代码量是非常庞大的,可能需要你一周甚至更长的时间才能够消化和理解之前的内容,这时你不妨先从符号导航器下手。(仅供参考)
符号导航器底部有三个过滤选项
1.第一个过滤按钮(正方形括起来的C)用来选择是只显示类和方法,还是显示全部类型的符号。默认情况是显示类和方法,如果选择显示全部类型的符号的话,符号导航器会按照类型来进行分组。如下图所示(1-3)
2.第二个过滤按钮(像一页纸被折了一个角)则是用以选择是否只显示本地项目中所定义的符号。取消选中后,符号导航器将会检索所有当前项目所导入的其他项目,框架中定义的符号,然后将会显示有多少是来自于本地项目,有多少来自于系统。(摘自原文)
3.第三个过滤按钮(正方形括起来的M)用来指定给定符号的成员(比如类的成员)是否显示。(摘自原文)
4.下表是符号类型的定义
符号 类型 C 类(class) f 函数(Function) Pr 协议(protocol) U 联合成员(Union) E 枚举(Enum) T 类型定义(Typedef) V 全局变量(Global Variable) S 结构体(struct) K 枚举成员或常量(Case) M 方法(method) P 属性(property)
总结
导航器区域就重点介绍一个符号导航器就行了,因为我觉得符号导航器需要我们多加使用和参考,其他导航器我们日常接触的比较多。比如默认的项目导航器,大家日常构建项目的时候,如果严格遵循MVC设计模式(抛开现在流行的MVVM模式),那么无非有两种构建方式。(小型项目适用,大型项目划分的更细)
1.主目录按照业务划分,次级目录按照模块划分。这样构建可以完全区分模型和视图控制器,但是维护相对麻烦,新入职的员工很有可能被逼疯,一个Group中塞满了模型,一个Group中塞满了controller。(原谅我自己就遇到过,真的是想哭,当初新手小白刚入职的时候真的是无从下手的赶脚)
2.主目录按照模块划分,次级目录按照业务划分。这样构建项目比较清晰,一个模块中所有东西都属于当前模块,维护比较简单,但也有一个小缺点就是当多个模块共用某些类或方法时,这些类不知道放到何处才能最大化的重用。
以上两种情况,符号导航器可以帮助我们更快的在入职新公司时接手项目。
今天先这样,关于《Xcode江湖录》这本书中其他比较好的知识点,日后我会不定期整理更新,也会在文中分享一些自己学习iOS开发以来阅读过的好书。供大家学习参考,谢谢大家!
网友评论