本节书摘来自异步社区《Xcode实战开发》一书中的第2章,第2.4节导航器区域,作者 【美】Maurice Kelly , Joshua Nozzi,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.4 导航器区域
Xcode实战开发
导航器区域由一组复杂的窗格组成。沿着工作区窗口的左边,是组织和浏览项目的文件、符号、编译问题、运行日志、断点、线程和栈以及搜索结果的主要界面。导航器区域顶部的导航器选择器栏允许开发人员在不同的导航器窗格之间切换。开发人员可以用导航窗口右上角的View(视图)按钮切换导航器区域的开关。
2.4.1 项目导航器
开发人员可以使用项目导航器(见图2.5)寻找项目(在多项目工作区中,可以是不止一个项目)的源代码和资源文件。单击任何资源(除了组——它只是项目中的逻辑容器)使Xcode导航到该资源,并在编辑器区域(导航区域右侧)中用合适的编辑器打开它。双击一个项目,在另一个窗口中打开该项目,Option+Shift+单击一个项目导致Xcode询问开发人员打算在哪里看到该项目。这将在以后研究,但是现在要了解这些也很方便。
![003ce51a6622621dc7fde6d247edbde225363666](https://i-blog.csdnimg.cn/blog_migrate/20134b08ae5c3c686213293efd5cfd8d.png)
项目导航器允许开发人员用组(由黄色的文件夹表示)组织项目。开发人员可以创建嵌套的组,用文件系统的方法来移动资源。组也可以代表项目文件夹中真正的子目录。要创建一个组,选择File(文件) > New(新建) > New Group(新建组)。
项目导航器和列表视图模式下OS X Finder的工作方式相同。开发人员可以添加、删除和重组项目中的资源。第5章将研究在项目中添加和删除文件和资源的方法。第6章将研究Xcode的源代码管理功能。
窗格底部(窗口最底部)的过滤器栏让开发人员进一步过滤项目列表。从左侧开始,+按钮可以在项目中添加新文件和资源(后面将详述)。时钟按钮将只显示最近修改过的文件。抽屉按钮只显示源代码控制状态更新的文件(见第6章)。钢笔和纸按钮(在搜索框旁边)只显示有未保存更改的文件。搜索框用输入的关键词过滤列表。
2.4.2 符号导航器
Symbol(符号)导航器(见图2.6)为开发人员提供对项目的不同视角。根据开发人员在过滤器栏(列表底部的按钮栏)选择的过滤器,可以跳转到项目或者Cocoa框架中定义的符号。符号(Symbol)是开发人员所创建的一个类,或者它的一个成员(属性或者方法等)。例如,开发人员可以在符号导航器底部的搜索栏中输入符号名称,然后单击列表中的符号直接跳转到源代码中的该符号,而不是从项目导航器中选择一个文件,然后在编辑器中寻找方法或者实例变量。
![d1f2585013f031931beccfdc521fa7ed9d047ff6](https://i-blog.csdnimg.cn/blog_migrate/9338f0a2d7ec50ede7a0aae706a552a1.png)
底部的过滤器栏提供了多个列表过滤选项。第一个过滤按钮(左起)可以选择只显示类符号还是显示任何类型的符号(例如协议、结构、枚举等)。第二个按钮启用时,过滤列表,只显示项目中定义的符号,而不是来自项目、Cocoa框架和其他链接的框架及库的所有符号。第三个按钮指定给定符号的成员是否显示 (例如类的成员)。搜索框进一步用指定的搜索词过滤列表。
2.4.3 搜索导航器
搜索导航器(见图2.7)允许开发人员以可以想象的任何方式搜索整个项目。窗格顶部的搜索框搜索项目,而底部的搜索框进一步过滤搜索结果。这些结果首先按照文件名排序,然后按照文件中的匹配数量排序。第12章将更详细地介绍搜索和替换。
![b4ce189e2aa11172911be6043d1cafa6ffeb3d3c](https://i-blog.csdnimg.cn/blog_migrate/fa284abf3bad222adc33ed11c61d8118.png)
2.4.4 问题导航器
在构建项目时,Issue(问题)导航器(见图2.8)列出在工作区中找到的任何问题(包括编码错误和错误的设计)。在Xcode中,问题可以是错误或者警告。和搜索导航器类似,问题导航器可以按照问题出现的文件组织问题。此外,Xcode可以根据类型组织问题的显示。单击选中一个问题将导致Xcode在编辑器区域中导航到该问题。
![abe86139c38abb9fa4bfb3e831ec135c89e98545](https://i-blog.csdnimg.cn/blog_migrate/2a1ed6ba448522e0178678bb7ca79299.png)
图2.8显示,Xcode报告WSAppDelegate.m和大部分人一样有些问题 (这是为演示目的而添加的—开发人员的Tour新项目将没有这些问题)。开发人员可以单击每个问题旁边的三角形,得到Xcode对问题的更详细解释。
问题导航器顶部是让开发人员选择按照所在文件还是类型显示问题的按钮。导航器底部的控件可以过滤列表。第一个按钮(左起)可以选择只显示最后一次编译中的问题(只显示“新”问题)。第二个按钮选择只显示错误(而不是错误或者静态分析器结果)。搜索框可以用指定的搜索词进一步过滤列表。
注意:
开发人员也可以用编辑器区域右上角的箭头从一个问题跳转到另一个问题。
2.4.5 调试导航器
当调试过程中执行暂停时(因为遇见一个端点或者一个崩溃的线程),调试(Debug)导航器(见图2.9)允许开发人员导航应用程序的线程和栈。开发人员可以用列表顶部应用程序名称右边的图标,按照线程或者队列组织信息。
![925415fc81909a025ad1bebd2c9a358e4a2fae77](https://i-blog.csdnimg.cn/blog_migrate/d2d5120ff54951e737978639a60844ea.png)
导航器底部的控件调整导航器显示的信息数量,激活时,按钮(在最左端)控件区域使导航器只显示崩溃的线程或者有调试符号的线程(通常是开发人员自己的代码)。控件区域的其余部分包含一个滑动条,可以控制显示的栈信息数量。向右滑动到底显示整个栈,向左则只显示第一帧,中间位置(默认)只显示Xcode觉得对开发人员“有用”的信息。单击滑动条两侧的图标向该方向移动滑块。
每个栈帧左侧的图标表示帧所属的代码。例如,带有蓝色和白色头像图标的帧属于开发人员的代码,而带有紫色和白色杯子图标的帧属于Cocoa框架。
2.4.6 断点导航器
与开发人员的项目相关的所有断点都收集在断点导航器(见图2.10)中。当开发人员在源代码编辑器(见第9章)中设置断点时,它们按照文件分组,出现在断点导航器中。
![cd338954363ec6db744fa82b009323626e13a9b9](https://i-blog.csdnimg.cn/blog_migrate/2011472ec05e73097392e31c5dc91d47.png)
单击断点名称可以导航到编辑器中断点所在的位置。单击蓝色断点标志可以切换断点的开关状态。右键单击断点并从上下文菜单中选择Edit Breakpoint(编辑断点),将弹出一个详细的视图。开发人员可以设置其他断点属性(在第15章中将会介绍)。
导航器底部的控件可以添加和删除断点,也可以进一步过滤列表。单击添加(+)按钮弹出一个菜单,可以添加两种非工作区相关断点(在异常时中断或者在开发人员提供的命名符号处中断)。删除(-)按钮删除选中的断点。删除按钮旁边的按钮可以过滤列表,只显示启用的断点,搜索框可以用指定搜索词过滤断点。
2.4.7 日志导航器
日志导航器(见图2.11)收集各种不同的日志(包括编译、分析、测试和调试)。单击导航器中的日志,将在编辑器区域显示该日志。
![e81166c65f6a738d9d0a39cdc42735fa32ee196a](https://i-blog.csdnimg.cn/blog_migrate/5a3d13ddb26ffa3f85236c3b3c6f325c.png)
当开发人员选中一条调试日志(也称为运行日志)时,调试区域的控制台内容将以普通文本方式显示,供开发人员浏览。当开发人员选择一条编译日志时,编辑器区域顶部显示一组控件,开发人员可以过滤想要查看的消息类型(包括全部消息、仅显示问题或者仅显示错误)。单击消息右侧的列表图标将展开它,显示其相关的命令和输出(见图2.12)。
导航器底部的控件可以过滤列表。开发人员可以用按钮选择只显示指定类型的最新日志。搜索框可以用指定搜索词过滤列表。
![2b340466fa60e60478ee2a4632a066c93e868e6b](https://i-blog.csdnimg.cn/blog_migrate/193009138c078d16625d85afa0b3271e.png)