[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 ...
随机推荐
- SQLSERVER利用FOR XML PATH实现分组拼接字符串
首先看一下数据结构表 IF(OBJECT_ID('tempdb..#tProduct')IS NOT NULL) DROP TABLE #tProduct SELECT * INTO #tProduc ...
- 寻找最大的k个数
这个题目是非常经典的一个题目,解法也有很多,现在就把我已经理解的解法记录下来. 题目描述 有n个无序的数,它们各不相等,怎样选出其中的最大的k个数呢? 题目分析: 解法1: 最容易想到的就是把n个数进 ...
- 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:/ ...
- cocos2d(背景图片循环滚动)
背景图片循环滚动 使用action 实现的: 主要有两个背景图片交替循环滚动:我选的两个背景图片的宽度都是1024的 ,所以定义了#define BGIMG_WIDTH 1024 代码如下: 在Hel ...
- 专为webkit内核而生的javascript库mango正式发布
专为webkit内核而生的javascript库mango正式发布 Mango(芒果) javascript库 求fork https://github.com/willian12345/mango ...
- Hadoop Streaming框架学习(一)
Hadoop Streaming框架学习(一) Hadoop Streaming框架学习(一) 2013-08-19 12:32 by ATP_, 473 阅读, 3 评论, 收藏, 编辑 1.Had ...
- 从零开始学C++之对象的使用(二):四种对象生存期和作用域、static 用法总结
一.四种对象生存期和作用域 栈对象 隐含调用构造函数(程序中没有显式调用) 堆对象 隐含调用构造函数(程序中没有显式调用),要显式释放 全局对象.静态全局对象 全局对象的构造先于main函数 已初始化 ...
- 分区数据库oracle自动分区
首先声明,我是一个菜鸟.一下文章中出现技术误导情况盖不负责 oralce在linux下主动备份并删除5天前备份 导出脚本: export ORACLE_BASE=/opt/oracle ...
- 第 1 章 Node.js 介绍
本章内容包括: 什么是 Node.js 框架,为什么要用 Node.js 框架,使用 Node.js 框架能够解决什么问题,在哪些场合下应该考虑使用 Node.js 框架. 如何下载 Node.js ...
- 利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
我比较喜欢听音乐,特别是周末的时候,电脑开着百度随心听fm,随机播放歌曲,躺在床上享受.但碰到了一个烦人的事情,想切掉不喜欢的曲子,还得起床去操作电脑换歌.于是思考能不能用手机控制电脑切换歌曲,经过一 ...