Xcode使用教程详细讲解(全)

Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境。因此,如果你要成为Mac 程序的开发者,灵活运用Xcode工具是你必须做的第一步。

1)我们写程序时常常在源文件的头部添加copyright声明以及公司名称等等;而Xcode在创建文件时已经帮我们做了绝大部分工作,我们可能需要修改一下公司名称,因为xcode给不知道我们公司名称,它不可能预知一切,所以需要我们自己通过设置来告诉它。那么我们如何做到这一点呢?因为xcode中没有有关公司名称的占位符,所以我们必须通过terminal使用命令来设置。

在使用这个命令之前 我们来看看xcode为我们提供的默认文件头部注释:

//
// untitled.m
// FilesOrganize
//
// Created by yan li on 8/29/09.
// Copyright 2009 __MyCompanyName__. All rights reserved.
// 

在terminal中执行如下命令(打开terminal的热键是command+shift+U):

代码如下:

yan-lis-macbook-pro:~ yanli$ defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "LiYanzhong";}'

注意上面的命令是在terminal命令行的同一行,而不是两行,这里是因为命令太长所导致。注意该命令执行时不会发出任何提示,即使你在命令中写错了参数名执行后也不会有任何提示,所以如果你执行该命令后发现你期待的效果没有出现,就请你检查一下你是否有拼写错误,执行该命令后我们重新启动xcode并重新创建文件,这个时候创建的文件头部注释,如下所见:

/*
 * untitled.h
 * Untitled
 *
 * Created by yan li on 8/29/09.
 * Copyright 2009 LiYanzhong. All rights reserved.
 *
 */

2)使用编辑器的技巧

a)如何关闭Xcode界面上的浏览器窗口?

点击 在Xcode工具栏上的最右边个Editor图标,可以打开或关闭Xcode中查找项目文件的浏览器。快捷键是command+shift+E。

如果你的窗口上每个我所说的图标,则你需要自己手动将该图标放置到工具栏上。如何放呢?

激活Xcode工具,进入 View->Customize Toolbar... 你会发现右很多没有在工具栏上出现的工具,你可以将想要随时可以用的工具拖到工具栏上就ok了。

b)如何对代码进行首行缩进?

第一种方法:选中需要缩进的代码,按住control键后单击光标,出现pop菜单,然后选择Re-indent selection。

第二种方法:选择需要调整的代码,同时按下command+[ (左移动代码)或 command+](右移动代码)。

c)代码自动完成功能的强大应用

在Xcode中写代码,Xcode编辑器常常给出提示,如果给出的代码提示符合我们的要求,我们就可以按tab键选择所提示的代码。

如果提示代码不符合我们要求,我们可以按下esc键,将整个提示列表显示出来,找到我们需要的。在列表成员的最左边有个小方框,如果里面是f则对应的成员是函数;如果是m则是方法;如果是#则是#define命令;如果是E则是枚举;如果上C表示类。

如果我们不希望显示提示列表也能在列表成员间选择,我们可以使用快捷键control+. 在选项之间循环;也可以使用shift+control+. 在选项间反向循环。我们可以通过“代码自动完成功能”来查询一个类所提供了哪些API(接口方法)。方法是将类写在方法调用表达式中实现这一查询功能:

[NSDictionary+空格,然后按下esc键,将出现NSDictionary中提供的方法列表。注意:[NSDictonary后面必须要有空格,提示编译器类名称已经写完接下来要输入的是消息(即类中的方法名)。

将光标从一个占位符跳到下一个占位符的快捷键是:control + /

d)在修改一个项目的代码时,请先拍下快照。

File->Make Snapshot 拍下项目的快照; File->Snapshots 从快照中恢复。对应的快捷键:control+command+S; 恢复没有快捷键,这样的好处就是--当代码修改烂了,可以恢复到最处状态。由此可见,这个功能只是在我们修改代码时提供帮助,不能真正的替代我们手动修改代码。

e)查找 替换功能的使用:

Edit->Find->Find in Projects... 出现如下对话框:

在Find栏输入要查找的字符;在Replace栏中输入要替换查找到的字符的字符;我们选择在工程中查找。如果我们不选择Ignore case 则替换只发生在main()函数中。

该方法修改代码有很到的弊端--如果我只想修改某个函数内的car字符,但是这样修改会将函数外的所有我不许修改的car字符也改了;二是它不能修改类名和文件名;所以需要下面的方法来弥补它的第一不足。

f)该方法可以解决上面修改代码的第一个缺陷,可以将代码的修改控制在一个函数之内,但是它仍然不能修改类和文件名字。使用这个方法前,必须用光标选择一个需要修改的局部变量字符或函数参数,注意必须是字符,如果你选择的是类名字符则不会出现菜单项“ Edit all in Scope".

Edit->Edit all in Scope,然后在你输入的时候,所有出现该字符的地方一起被输入的字符替换掉。

g)下面讲解一种可以修改类名和文件名的方法。

是用该方法可以改变类名字和文件名;先选择一个需要被修改的类名,如Engine;将光标插了到该字符中,选择Edit->Refactor...打开如下的对话框:

你如果需要将Car修也可以。

按下 preview按钮,界面如下所见,Xcode自动给处了我们分析报告,有什么文件将被修改,每个文件有几处会被修改等信息。从下面图可以看到,类名以及类的文件名都被修改了。

h)在Cocoa文本域常用的快捷键:

使用如下的快捷键 我们就可以在小范围呢移动光标二不让手不离开键盘了。

control+F : 在同一行上将光标向右移动
control+B : 在同一行上将光标向左移动
control+P : 将光标移动到前一行
control+N : 将光标移动到后一行
control+A : 将光标移动到本行的行首
control+N : 将光标移动到本行的行尾
control+T : 将光标两边的字符对调
control+D : 删除光标右边的字符
control+k : 删除光标所在行 光标后面的代码,便于你重写行尾代码
control + L :将光标插点置于窗口正中。

i)如何在Xcode中搜索一个文件?

在一个源文件如何打开一个由#import导入的头文件呢?

选中该头文件(可以不包含.h),然后通过File->Open Quickly...打开该被选中的文件。
在没有选中任何文本时,选择Open Quickly...则打开一个简单的查询窗口,查找工程中的文件。快捷键command+shift+D
如果你当前在看一个.m文件,这个时候你突然想要看看与该文件对应的.h文件,我们可以使用command + option+向上箭头 组合键,打开配套文件。

j)Xcode中书签的使用

如果你要将代码中的某个部分标注起来,以便以后和方便的找它这部分代码,则我们可以使用书签。

选中一段文本或在源文件中放入插入点,然后选择Edit->Add to Bookmarks(快捷键 command + D),出现提示时输入书签名。

k)代码编辑器的导航条

导航条 就是在本文编辑窗口的顶部。

导航条上有个功能菜单,我们可以通过#pragma mark命令向 功能菜单上添加项。#pragma指令将objective-c将常规代码之外的信息或说明传递给编译器和代码器。通常,#pragma是被忽略,如果你的编译器不认识它就会忽略它,不会报考警告。

除了通过#pragma mark向功能菜单添加项;

在注释中以如下关键字符打头的文本都会被添加到功能菜单:

代码如下:

MARK: 
TODO: 
FIXME: 
!!!: 
???:

L)通过研究助手(Research Assistant)获取Xcode 的文档和参考资料。

可以通过Help->Show Research Assistant 打开研究助手;一旦研究助手的浮动窗口被打开后,浮动窗口中的内容会随着你与Xcode 交互操作的内容改变而改变。
如下图所示:在Tire.m文件中,当光标在NSString类上时,研究助手浮动窗口所显示的信息:

切换到文件Tire.h中,研究助手的浮动窗口就显示有关NSObject的信息:

M)文档管理程序

我们可以通过访问苹果公司的官方API文档;方法是按住Option键并双击某个要查看的符号。如我们按住Option键并双击NSString符号将在文档浏览器窗口中打开有关NSString的资料信息,如下图:

按住control键并单击文档区域来打开pop菜单,选择任何菜单项,在另一个窗口中打开该文档。

M)如何调试程序?

(a)有两种方法:一是暴力调试,二是使用调试器调试。

什么是暴力调试?

暴力调试就是在你的程序中添加NSLog()语言,将程序的控制流程和一些重要数据输出到终端上。

调试器调试:

调试器 就是介于你编写的应用程序和操作系统之间的一种程序,可以对你的程序进行控制,如停止,执行,单步跟踪等。

Xcode使用的调试器是GDB。

Xcode除了有GDB外,还有一个微型调试器,它是一个浮动窗口,通过它我们能接跳过GDB调试器做一些简单的调试工作。
Xcode有一个提供大量概述信息的调试窗口。
Xcode提供一个调试控制台,通过它可以直接向调试器发调试命令。

(b)如何用调试器进行调试?

(1)编译程序时必须使用编译器的Debug配置,这样编译出的程序包含调试信息(调试器要用的信息)
(2)调试时 需要让程序在调试器模式下运行。

在Xcode中有两种运行程序的方法:Run->run (快捷键:command + R), 不用调试器运行程序;

Run->Go(Debug)或者Run->Debug(快捷键:command+Y),使用调试器运行程序。

(3)对 断点 的操作 如何设置断点?

在 边列(gutter)上单击 就可以设置一个蓝色的断点;在次单击就disable该断点;如果要删除该断点就将该断点拖出边列。

调试快捷键:

continue  :  option + command + P
step Into  :   shift + command + I
step Over :   shift + command + O
step Out  :   shift + command + T 

打开Xcode的调试窗口(点击调试控制栏上一个有喷雾器的方框)如下图:

通过该窗口,可以执行各种调试命令并观察变量值的变化。

如下是GDB的命令调试窗口,在其中可以输入gdb的调试命令对程序进行调试:

通过调试控制栏上一个控件(黑色方框控件右边的那个),可以察看函数调用栈;如上图所示。

[Note]边列(断点所在的列) 傍边较窄一列就是 焦点列。

小结:Xcode使用教程详细讲解的内容介绍完了,希望本文对你有所帮助,我们大概学习了Xcode这一强大的工具,要想深入研究它,我们还有很多的路要走,不过我们已经有了一个好的开始。

(0)

相关推荐

  • iOS10 适配-Xcode8问题总结及解决方案

    iOS10 适配-Xcode8 问题解决: IOS开发者,系统版本的更新,必定要跟着更新,不然有些功能不知道,开发的时候对可以体验,大打折扣了. 前段时间升级了Xcode8,整体来说对OC的影响不大,但是还是跳一个坑,消耗了不少时间.这里总结下遇到的适配问题. 1.权限问题 Xcode8 访问相机.相册等需要权限的地方崩溃 解决办法: 在使用私有权限时,添加Info.plist文件中添加配置: 下面是各种key,需要哪个添哪个 NSBluetoothPeripheralUsageDescript

  • xcode8 关闭控制台不打印不信息的解决方法(图文详解)

    控制台打印的信息如下 2016-10-15 10:13:17.774543 LGLSearch-Dome[1656:356106] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_

  • Xcode中iOS应用开发的一般项目目录结构和流程简介

    项目所需的平台路径 1.开发平台路径: /Developer/Platforms 此路径下一般有三个目录,分别是mac电脑.模拟器.iphone真机 MacOSX.platform iPhoneSimulator.platform iPhoneOS.platform 每个目录下都有一个/Developer/usr/bin目录,放置开发中需要的程序 总的目录比如:/Developer/Platforms/*/Developer/usr/bin/ 注意:*代表上面上个目录中的一个,具体是哪个看目标平

  • 教你如何解决XCODE升级后插件不能用问题

    摘要:Xcode升级后打开Xcode会提示loadbundle或Skipbundle,一般我们选择loadbudle,Xcode插件依然有效,选择Skipbundle,Xcode插件会失效.有人想装两个版本的Xcode,后装的那个也会出现插件失效的情况. 一.Xcode插件失效原因 并不是升级或重装后原本的插件被删掉了,其实插件还在这个目录~/Library/Application Support/Developer/Shared/Xcode/Plug-ins .之所以插件失效,是因为每个插件只

  • Xcode8以及iOS10适配等常见问题汇总(整理篇)

    随着iOS 10的更新以及Xcdoe 8的更新出现了很多问题,今天小编抽时间把我遇到的坑和大家分享下,一起看看吧. 1.访问权权限问题 iOS 10 开始对访问用户隐私权限更加严格,如果你不设置就会直接崩溃,解决办法都是在info.plist文件添加对应的Key-Value就可以了. PS:对应的value可以自定义填写 2.Xcode 8 运行打印一堆Log的解决办法 只要在Run->Arguments->Environment Variables 添加如下key-value值即可 OS_A

  • iOS10开发和Xcode 8新特性及常见问题解析

    iOS 10 开发这次更新主要表现在以下这几个方面. 1.语音识别 苹果官方在文档中新增了API Speech,那么在以前我们处理语音识别非常的繁琐甚至很多时候可能需要借助于第三方框架处理,那么苹果推出了这个后,我们以后处理起来就非常的方便了,speech具有以下特点: 可以实现连续的语音识别 可以对语 音文件或者语音流进行识别 最佳化自由格式的听写(可理解为多语言支持)和搜索式的字符串 核心代码: #import <Speech/Speech.h> /** 语音识别同样的需要真机进行测试 ,

  • 解决Xcode8打包上传构建版本无效的办法

    发现问题 升级xcode8以后昨天下午打包上传项目多次,每次都可以成功打包,然后出现 正在处理 稍等片刻以后画风突变 正在准备的版本消失不见 连续试了好几次都是这种问题,最后用的xcode7.3重新打包上传成功! 版本构建无效的都是xcode8打包上传的 但是,既然xcode8出现了这种问题,我们就要解决它,今天又重新用xcode8打包. 解决方法 首先当然是访问系统权限. 这个很好解决,项目中访问了隐私数据,比如:相机,相册,联系人等,在Xcode8中打开编译的话,都会crash.于是不喜欢c

  • xcode 详解创建静态库和动态库的方法

    xcode 创建静态库和动态库 1.linux中静态库和动态库区别: 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 静态库:这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了.当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译. 动态库:这类库的名字一般是lib

  • iOS Xcode8更新后输出log日志关闭的方法

    刚把Xcode更新到最新的8,一运行发现好多log输出,根据如下操作可以关掉这些log日志,点击项目Edit Scheme - Run - Arguments - Environment Variables里添加:Name:OS_ACTIVITY_MODE  Value:disable 如图: 以上所述是小编给大家介绍的iOS Xcode8更新后输出log日志关闭的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • XCode编译速度慢的处理方法

    提升编译链接的速度主要有以下三个方式: 1. 提高XCode编译时使用的线程数 复制代码 代码如下: defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4 XCode默认使用与CPU核数相同的线程来进行编译,但由于编译过程中的IO操作往往比CPU运算要多,因此适当的提升线程数可以在一定程度上加快编译速度. 2. 将Debug Information Format改为DWARF 在工程对应Target的Build Set

  • 更新了Xcode8 及 iOS10遇到的问题小结

    更新了Xcode8 以及 iOS10,App访问用户的相机.相册.麦克风.通讯录的权限都需要重新进行相关的配置,不然在Xcode8中打开编译的话会直接crash. 需要在info.plist中添加App需要的一些设备权限. 相机NSCameraUsageDescription 相册NSPhotoLibraryUsageDescription 通讯录NSContactsUsageDescription 始终访问位置NSLocationAlwaysUsageDescription 位置NSLocat

随机推荐