Xcode 技巧充电篇

作为工程师,我们最重要的事情就是熟悉我们每天使用的日常工具,但不能仅限于此。只要有可能,我们应该试着掌握和定制能使我们更快、更轻松地实现最终目标的工具。下面是一些小提示和技巧,都是我在 Xcode 上面进行编程时用到的。希望他们对你有用。


1. Ctrl + 数字键


Xcode 能通过组合 ⌃+[1/2/4/5/6] 键,快速地从项目文件夹一直导航到函数。使用快捷键显示出面版后同样可以使用搜索功能。



2. 断点叮当


断点是令人惊叹的。我们也可以补充一些相关知识。你知道吗?你可以在每次执行指令指针命中时执行一些令人惊叹的 llvm 命令并响起/叮当声。当你想知道一个函数被调用而无需不断地继续执行程序时,你可以结合自动继续执行功能/的使用。



看看所有这些选项 !


3. 模糊搜索


是否忘了你在寻找的东西在哪里?Xcode 允许你通过快捷键 ⌘⇧O 在整个项目内进行模糊搜索。整个功能的关键是模糊搜索;如果有多个搜索结果,你可以持续键入直到你期望的结果出现为止。



非常多的选项



这样好多了


4. 域内编辑


在任意地方,把光标放在实例变量、函数名上并使用快捷键/⌘⌃E。请留意,每个词的实体如何被突出显示的?一旦修改它,Xcode 就会修改它所在类的各个地方。当你需要重命名实例变量或函数名时,请使用它。 编码时咖啡洒了这事没那么惨,这个也同样适用于在函数内定义的本地变量。从此在变量函数命名前再也无需三思而后行。



5. 选中驼峰命名


下面的同之前提到的配合使用非常好;Xcode 可以通过 ⌃ 键选中驼峰命名。当你通过上档键和方向键搭配使用来突出显示驼峰命名的变量的特定部分时,这变得非常有用。请注意,该选中按键会和 OSX 的一个在空格间直接跳跃的按键发生冲突,为确保该功能准确执行,你可以通过在系统偏好配置中禁止该动作。



6. 在编辑器和导航器之间跳转


你想要跳到导航内你正在编辑的文件吗?使用 ⌘⇧J 。这是它所有的光芒。因为它太慢了,所以想要不通过触摸板跳回右侧的编辑器内,使用 ⌘J。小彩蛋:你可以使用 ⌘⌥J 在文件导航器内搜索一个指定文件。


7. 变量断点


在实例变量声明行添加一个断点,每次该变量修改时 Xcode 就会在该点停止。



8. 快速跳转到定义


你是否曾经使用 ⌘ 点击 Apple Framework 函数或属性,以了解更多详情?将输入光标/放在文本上的任何地方并使用快捷键⌘⌃J。这同样适应于你自定义的函数和变量。


9. 比较上次提交差异


当可以使用 ⌘⌃⌥⏎ 在 Xcode 内看到舒适的自定义主题差异时,没有人需要第三方 git 差异工具。


你可以在 Xcode 内使用 ⌘⌃⌥⏎ 很舒适地在自定义主题中查看提交差异,这还需要第三方 git diff 工具?



10. 快速切换断点


在你当前标记行通过快捷键 ⌘: 切换断点,并使用 ⌘Y 在项目中/切换断点的激活状态。


这些快捷键已经成为我日常工作的一部分,并加快了我编写和重构代码的速度。如果在某些情况下,某些快捷键和之前设置的快捷键发生了冲突,你就知道它们都是可以定制的。只需要键入 ⌘, 并导航到 “Key Bindings”。让编程更快吧!


本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
getDrawingCache()方法截取部分屏幕: view.setDrawingCacheEnabled( true ); //设置能否缓存图片信息(drawing cache) view.buildDrawingCache(); //如果能够缓存图片,则创建图片缓存 Bitmap bitmap = view.getDrawingCache(); //如果图片已经缓存,返回一个bitmap view.destroyDrawingCache(); //释放缓存占用的资源 Tips: 如果在一个界面中,重
转载请注明出处,谢谢! 以前写过一些解决中文乱码的博客。但是以前只给了解决方案,并没有分析原因。 今天来分析一下乱码的原因: 1.通过浏览器给后台提交数据的时候,默认使用的是ISO-8859-1提交的 所以在Servlet中收到中文数据时要做编码转换。 把字符串按照iso-8859-1转换为字节,然后把字节转换为utf-8 name = new String(name.getVBytes("iso-8859-1","utf-8"));[如果没有这个,控制台可以输出正确中文,但是响应界面还是会乱码(Serv
Android For JNI(二)——C语言中的数据类型,输出,输入函数以及操作内存地址,内存修改器 当我们把Hello World写完之后,我们就可以迈入C的大门了,今天就来讲讲基本的一些数据类型,函数之内的 我们先来看一张传播久远的图片‘ 一.各种数据类型介绍 整型 整形包括短整型、整形和长整形。 短整形 short a=1; 整形 一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后,例如0
作者:Frank 转载请注明出处 一直没时间写博客,最近抽时间写了些关于在ORB_SLAM2在Android上的移植过程,也算是点经验吧。 写完后一个手贱点了个链接,瞬间1/3工作量没了,深夜弄完也是醉了。。。 正文开始 这篇博客讲述如何在Android平台上移植ORB_SLAM2,讲述过程包括基本的Android环境的搭建和NDK环境的配置,Android下移植的基本概念,ORB的具体移植步骤等。 Android平台搭建和NDK环境配置 系统:windows7 32bit IDE:Eclipse Lun

iOS导入cocos2d游戏 - 2016-04-15 18:04:03

一、xcode中在自己项目中引入cocos2dx,需要导入cocos2d_libs静态库。首先需要到官网下载cocos2d引擎, cocos2d引擎下载链接点击进入官网 二、将cocos2d引擎拷贝到工程目录,在工程中add Files..添加到工程中。 三、添加依赖库 四、对工程进行配置 1、Build Settings中配置 设置Valid Architectures 2、Build Options -Enable Bitcode 设置为NO 3、设置Other Linker Flages 如下 4、
简述 继承Binder类 在onBind中创建一个继承Binder类,并返回。这样接到这个Binder的终端就可以直接使用它来访问Binder或者Service当中的共有方法。 当你的Service在幕后工作,并且仅仅被你自己的应用程序使用的时候,我们就推荐你使用这样的方法。如果你要使用你的服务可以被其他的应用程序访问或跨进程通信,你才需要用其他的方法。 使用Messenger 跨进程用这种方法。这种方式里面Service会定义一个Handler来处理不同类型的Message对象。Handler是Mess
在AVFoundation框架中 AVAudioRecorder类专门处理录音操作,支持多种音频格式。下面是常用的属性和方法: 属性 说明 @property(readonly, getter=isPlaying) BOOL playing 是否正在播放,只读 @property(readonly) NSUInteger numberOfChannels 音频声道数,只读 @property(readonly) NSTimeInterval duration 音频时长 @property(readonly
今天来聊聊,android中接入微信支付的需求,肯定有人会说,这多简单呀,还在这里扯什么,赶快去洗洗睡吧~~ 那我就不服了,要是说这简单的,你知道微信支付官网多少吗,要是你一百度,下面全是广告,哈哈,你一不小心就掉坑去了,在简单的事,只要你想把他做好,其实也是很复杂的~ 简介 首先我们来到 微信支付官网 瞅瞅: 可以看到这就是微信支付首页,下面有几种支付方式,而我们今天的主角就是APP支付,我们可以直接点进去,或者从左上角接入指引-APP支付,进去的文档式样的, 这是这个文档的位置 如下图所示: 肯定有人

安卓006单元测试 - 2016-04-15 18:04:18

Android 测试,日志 测试 常见测试分类 在介绍Android Junit前先介绍一下常见的测试分类。 根据是否知道源程序源码:  黑盒测试:不知源码,只是测试程序的功能  白盒测试:知道源码,根据源代码进行测试 根据测试的粒度:(模块的大小)  单元测试:unit test  功能测试:function test:方法测试  整合测试:integration test:几个模块的测试,服务器/客户端的联调  系统测试:system test 根据测试的次数:(暴力测试)  冒烟
简述 Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice和QPaintEngine这三个类。 QPainter用来执行绘图操作,其提供的API在GUI或QImage、QOpenGLPaintDevice、QWidget和QPaintDevice显示图形(线、形状、渐变等)、文本和图像。 QPaintDevice不直接绘制物理显示画面,而利用逻辑界面的中间媒介。例如,绘制矩形图形时,为了将对象绘制到QWidget、QGLPix