[HMLY]6.iOS Xcode全面剖析
一、创建一个新工程
1.第一步打开Xcode,找到Xcode程序图标并点击
2.如下界面,我们点击新建一个项目,即第二项
(1)、Get started with a playground
playground是苹果公司在2014年WWDC(苹果开发者大会)随Swift一起推出的,可以实现一边写代码,一般预览效果(即实时预览代码的效果)的工具。
相当于以前写代码要经过Build-->Run漫长的等待才能看到代码的效果来说,Playground给程序员带来的方便不言而喻。
Playground的不足之处是:无法直接将Playground文件直接用到工程中,暂时不支持Objective-C。
我们开发者可以利用Playground来快速测试一些代码和效果。
(2)、Creat a new Xcode project
创建一个新的Xcode项目,一般正式的项目都是从此选项开始的。
(3)、Check out an existing project
打开一个已经存在的项目
3、选择一个项目模板创建,如下,图中已经标出不同,并点击Next
左侧栏:
左侧栏中四个分类分别代表了手机/pad、手表、电视、及PC端的开发选项,就是一款Xcode足可以开发苹果所有产品线中的所有软件。
Application:即创建一个完整的项目。
Framework & Library:即写一个框架或者库
右侧详细:
各种预定义的模板,具体可以从图中显示看出各种模板的样式,一般而言项目会选择最简单的即第三个模板。
4、填写并选择一些所创建项目的信息,如下并点击Next
(1)Product Name
项目名称,比如本例中名称就是XcodeIntroduction(驼峰式命名)
(2)Organization Name
组织或公司的名称
(3)Organization Idetifer
组织或者名称的标识
(4)Bundle Identifer
程序包标识,新建项目时是根据你创建的项目名称自动生成的不可更改,可在内部修改。
(5)Language
开发语言选择,目前Xcode提供Object-C、Swift两个选择,这里选择OC。
(6)User Core Data
是否使用CoreData,iOS开发常用的一种数据库。
(7)Include Unit Tests
是否添加模块单元测试Target
(8)Include UI Tests
是否添加UI单元测试Target
5、选择路径创建项目,如下面,选择桌面,并点击Create。
(1)、creat Git repository on my mac
是否创建版本控制系统,创建的话可以选择是在本地还是在服务器。版本控制系统,或者说修改控制系统,实际上是一种检测源文件的改变并将其保存留作以后参考使用的机制(软件)。此外,它还能记录其他游泳信息,比如是哪个开发者修改的代码,何时修改的,修改了哪一部分,以及其他历史信息。版本控制系统可以比较不同版本代码的不同,有必要时能恢复整个项目到以前的版本,追踪有害代码从而减少产品的错误。
通过版本控制系统,开发者可以在一个项目的不同分支上工作,当项目的各个部分开发完备时,将他们放到一起形成最终版本,这个过程叫做合并。事实上,这种做法在团队和软件公司中相当常见:每个人负责项目的一部分,最终所有部分被整合到一起形成最终产品。
6、创建成功后的界面如下
二、Xcode界面详细介绍
五大区域介绍,如下图
1、第一部分:顶部区域
(1)程序运行相关:
从左至右依次:运行按钮、停止按钮、为工程选择运行平台。
(2)编辑器相关:
从左至右依次:标准编辑器、辅助编辑器、版本编辑器。
(3)面板控制相关:
从左至右依次:隐藏(显示)左侧面板、隐藏(显示)底部面板、隐藏(显示)右侧面板。
2、第二部分:左面板
该面板是Xcode工程导航面板,上方的八个按钮用于切换导航模式。从左至右:项目导航、符号导航、搜索导航、问题导航、测试导航、调试导航、断点导航、日志导航。
(1)项目导航
项目导航组成:
源文件:在XcodeIntroduction目录下的”.h“和”.m“后缀文件就是源文件;
属性文件:在XcodeIntroduction下的Supporting Files目录下是属性文件 图片等;
单元测试项目:XcodeIntroductionTests、XcodeIntroductionUITests是工程单元测试项目;
目标应用:products目录下的XcodeIntroductionTests.app是目标应用。
(2)符号导航
符号导航简介:用符号显示工程中的类、项目和属性;
表示方法:C表示类,M表示方法,P表示属性
快速定位:点击对应的方法或者属性,能快速定位到这个类中。
(3)搜索导航
在搜索框中输入要搜索的字符串,按回车就可以搜索出包含该字符串的类。
(4)问题导航
显示项目中存在的警告或者错误
(5)测试导航
点击testExample后面的执行按钮,就会运行单元测试;
(6)调试按钮
调试导航面板中显示了各县城的详细信息
(7)断点导航
列出所有的断点,方便管理断点
(8)日志导航
列出项目开发过程中构建、生成、运行过程,每次该过程都可以通过日志面板查看。
3、第三部分:调试面板
用于Xcode显示控制台调试输出信息。
(1)添加断点
如上图,在第20行打印代码上添加一个断点。
(2)开始调试(自动判断)
点击顶部面板中的调试按钮,如果代码中有断点,就会自动进入调试状态,执行到断点时会自动停止,详细调试信息显示在底部的调试输出面板;
(3)调试面板按钮介绍(上图红框中从左至右)
1.continue program execution:继续执行下面的代码;
2.step over:单步调试,点击一次该按钮,执行一行代码,如果有方法调用,不会进入方法中;
3.strip in : 步入调试,点击该按钮,会进入方法中
4.setp out : 步出调试,在方法中,点击该按钮,会退出方法,执行方法外的单步调试;
5.点击会出现此时项目的视图层次结构
6.点击会让你选择你的地理位置
4、第四部分:右面板
包括两个部分上的侧的检查器面板和下侧的库面板。
(1)检查器面板
检查器面板分类:
普通源文件:包含文件检查器和快速帮助器。
1)文件检查器
Identity and type:file name(文件名),file type(文件类型),full path(路径)
Text Setting:Text Encoding(文件编码使用字符集),Indent Using(缩进),Wrap lines(自动换行)
2)快速帮助器
界面设计相关检查器
用户选中”.storyboard“或者”.xib“后缀的文件时,会多出另外四个检查器;
3)身份检查器
管理界面组件类 实现类,恢复ID等标识性的属性;
4)属性检查器
管理界面组件 拉伸方式,背景色 等属性;
5)大小检查器
管理界面组件 宽高 xy轴坐标等属性
6)连接检查器
管理界面组件 与程序代码之间的关联性;
(2)库面板(从左至右)
项目的各种库文件,方便查找使用
1)文件模板库
管理文件模板,可以快速创建指定类型文件,可以直接拖入项目中;
2)代码片段库
管理各种代码片段,可以直接拖入源代码中
3)对象库
界面组件,可以直接拖入故事板中
4)媒体库
管理各种图片,音频等多媒体资源
5.第五部分:详细编码区
该区域是代码编写的主要区域。
三、Xcode菜单详解
四、Xcode快捷键介绍
Xcode中的快捷键确实会让人眼花缭乱,在此只介绍主界面上按钮点击的快捷键(有很强的记忆规律),代码相关、运行相关的代码可以看这里
1、第一个需要知道的是Xcode的各区域与修饰键的关系,下面是一个快速浏览
Command:用来导航,控制导航区域
Alt:控制右边的一些东西,比如Assistant Editor,utility editor
Control:编辑区域上的Jump bar的一些交互
如下图
下面是最常用的组合键:
Command 1~ 8: 跳转到导航区的不同位置
Command 0 :显示/隐藏导航区
Command Alt 1~ 6:在不同检测器之间跳转
Command Alt 0: 显示/关闭工具区.
Control Command Alt 1~4: 在不同库之间跳转
Control 1~ 6: 在Jump bar的不同标签页的跳转。
最后也是最简单的就是回车键,当它和Command组合使用时,可以是你在Xcode中不同编辑器来回切换。
Command + Enter: 显示标准单窗口编辑器
Command Alt Enter:你可以猜下它的作用,它的功能是打开Assistant editor
Command Alt Shift Enter: 打开版本控制编辑器
同样重要的是显示/隐藏调试区的快捷键是 Command + Shift + Y ,要记住这个你可以通过这句话来记忆 “Y is my code not working?” (译者注:Y谐音Why)。
如果你忘记了一些快捷键,你可以在Xcode的菜单栏Navigate一项中找到大部分快捷键。在即将完成这一部分的学习之时,你会惊奇的发现你仅仅只是用了键盘就让Xcode发生这各种变换。
[HMLY]6.iOS Xcode全面剖析的更多相关文章
- iOS Xcode全面剖析
链接:http://www.jianshu.com/p/3c8527898e84 一.创建新一个工程二.Xcode界面详细介绍三.Xcode菜单详解四.Xcode快捷键介绍五.结语六.参考资料 前言 ...
- [转]phonegap 2.9 IOS Xcode 搭建环境
phonegap 2.9 IOS Xcode 搭建环境 一:下载phoneGap2.9和安装Xcode5(目前最新版) 选择2.9是因为3.0以上坑爹版本编译神马的要在有网络情况. 二: 下载ph ...
- 【Xamarin挖墙脚系列:Xamarin.IOS机制原理剖析】
原文:[Xamarin挖墙脚系列:Xamarin.IOS机制原理剖析] [注意:]团队里总是有人反映卸载Xamarin,清理不完全.之前写过如何完全卸载清理剩余的文件.今天写了Windows下的批命令 ...
- iOS Xcode及模拟器SDK下载
原文: Xcode及模拟器SDK下载 如果你嫌在 App Store 下载 Xcode 太慢,你也可以选择从网络上下载: Xcode下载(Beta版打的包是不能提交到App Store上的) 绝对官方 ...
- iOS/Xcode异常:no visible @interface for XXX declares the selector YYY
在iOS/Xcode开发过程中,出现如下异常信息: no visible @interface for XXX declares the selector YYY 分析原因: There are lo ...
- iOS—Xcode 7真机测试
Xcode 7真机测试详解 1.准备 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题:could not find developer disk im ...
- iOS XCode启用/关闭Clang Warnings
前言:warnings是编码中很重要的一个环节,编译器给出合理的warning能帮助开发者找到自己代码的问题,防止很多bug产生. 默认用XCode创建一个工程,会自动开启一些重要的warnings ...
- iOS - Xcode 配置
1.Xcode 配置 1.1 OS X 1)main 文件注释修改路径: /Applications(应用程序) ▸ Xcode.app ▸ Contents ▸ Developer ▸ Librar ...
- iOS xcode设置
Xcode build search paths c/c++ 头文件引用问题include <> 引用编译器的类库路径下的头文件include “” 引用工程目录的相对路径的头文件 inc ...
随机推荐
- [转]Use the IDA and LLDB explore WebCore C + + class inheritance
原文:http://www.phonesdevelopers.com/1781016/ The surgery class named PluginWidgetIOS use lldb can get ...
- js中内置有对象
statpot:使用mongo+bootstrap+highcharts做统计报表 最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度.客户端会调用一个接口来记录接口的访问情况,我的需求 ...
- BizTalk 2010/2013 EDI B2B
BizTalk 2010/2013 EDI B2B项目实践(1) BizTalk 2010/2013 EDI B2B项目实践(1) BizTalk开发标准EDI B2B是件非常容易的事情,但对于初 ...
- IS动态左侧菜单-01
<%@ Page Language="C#" CodeFile="Default3.aspx.cs" Inherits="Default3&qu ...
- Linq 更改主键值
有一个班级表,主键是class_id,在管理班级时要进行逻辑删除,而只是单纯的is_del字段(记录每条数据是否有效)更改为true,主键class_id如果不变动,在再次增加一个班级时,其主键如果和 ...
- 在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序
在 Linux 中自动生成 Cordova/Phonegap for Android 的 APK 安装程序 本贴首发于: http://xuekaiyuan.com/forum.php?mod=vie ...
- Cloudera Development Kit(CDK) 简介
Cloudera Development Kit(CDK) 简介 guibin.beijing@gmail.com 2013.07.02 CDK简介 CDK(Cloudera Development ...
- C语言序列点浅析
摘要: 现行国内的C语言教材普遍不介绍序列点,这使得读者只能“死记硬背”有序列点表达式的求值顺序,不仅造成了读者对C语言知识的认知残缺不全,而且也影响了读者学习的积极性.本文总结了序列点的作用,即表达 ...
- 语音语音合成科大讯飞和Tizen-TTS语音合成引擎
废话就不多说了,开始... 最近在做一个文本转语音TTS(Text to Speech)的第三方软件封装,应用的是海内语音技术龙头安徽科大讯飞公司提供的离线引擎AiSound5.0,重要用于 ...
- mybatis判断list为空
在传入的map或者对象里面存在一个list,此时想要判断list是否为空,可以 <if test="spids.size()>0 " > and SPid not ...