[转]Xcode的重构功能
Xcode提供了以下几个重构功能:
Rename
Extract
Create Superclass
Move Up
Move Down
Encapsulate
在菜单栏中的位置如下图:
在代码区里直接右键也能出现重构的相关菜单:
下面就分别介绍这些重构功能的使用。
Rename:重命名
几乎可以试用所有symbol:类名,方法名,函数名,属性名等。使用起来非常简单,选中一个要命名的符号后,选择rename,就会弹出一个输入框让你输入要想要的新名称,输入完成后点击preview可以预览一下。
修改一个属性名称后的预览
Extract:将代码抽取为一个单独的方法或函数
选中一段代码后(可以包括注释),选择Extract,会分析你选择的代码段后自动生成方法签名。你可以修改方法名,如果参数、返回值不正确也可以自己再修改。
如果选择了function,就是另外一种格式:
在预览时如果发现有些需要调整,可以直接在预览框编辑。
下面是抽出一个doubleValue方法的预览:
Create Superclass:创建父类
这个很好理解了,就是创建一个当前类的父类。要注意的是要选中类名的时候才能成功触发。
需要注意的是预览界面最左边的导航区,选择中间一个是这次重构会影响到文件列表。可以点击到这个tab下查看其它类的改动。
如果有警告,会默认显示警告的tab。
Move Up & Move Down
Move Up:可以将一个方法、实例变量移动到父类中去。触发时和重命名一样,要选中实例名或者方法名后才能正常使用。在category中不适用。
Move Down:相反,将选中的实例变量移动到子类中。是的,方法就不能移到子类了。逻辑上很难理解为什么是这样。但是苹果爸爸就是这么任性。
Encapsulate:封装
这是一个令人怀念的词,多年后看到还是会想起期末考试里面向对象三大特点的填空题。
这个的作用是在你选中一个变量后,会自动帮你生成get、set方法。
下面是我将variableStr变量封装后的预览:
一些新手可能不太理解这个功能。因为在声明property时就已经自动生成了get、set方法。所以这个功能应该是有点过时了。
如果用过eclipse的同学可能要呵呵了,这个我们懂。
一件悲伤的事
以上这些重构功能并没有快捷键。
虽然好像有我也记不住啊!
别这样,白要谁不要。
那么如果我就是装逼快捷键党,不想让别人知道我选用了这个功能怎么办呢?
也许全世界你也可以忘记,至少还有key binding值得你去珍惜:
refactor-keybindings.png
一件更悲伤的事
喜新厌旧的我在使用swift时,选择了一个extract后,出现了下面的提示框。
我心中:
[转]Xcode的重构功能的更多相关文章
- 【转】Xcode重构功能怎么用我全告诉你
原文网址:http://www.cocoachina.com/ios/20160127/15097.html 你会经常需要重构你的代码,让它有更好的结构,可读性或者提高可维护性.Xcode作为IDE其 ...
- Eclipse 中的重构功能
Eclipse 中的重构功能使其成为了一个现代的 Java 集成开发环境 (IDE),而不再是一个普通的文本编辑器.使用重构,您可以轻松更改您的代码,而不必担心对别处造成破坏.有了重构,您可以只关注于 ...
- eclipse 重构功能。
1. Rename Rename重构的功能就是重命名Java元素.虽然可以通过手动修改文件的文件名或其它Java元素的名称,但这种方式不会更新与此Java元素相关联的引用,用户必须手动查找和此Java ...
- Eclipse 重构功能的使用与重构快捷键
重构是什么? 在代码写好之后改进它的设计. 重构分类:物理结构.类层次结构.类内部结构. 名称 快捷键 直译 作用范围 描述 Rename Alt + Shift + R 可以对任意变量.类. ...
- xcode的菜单栏功能解析
[Xcode 7.2]Xcode菜单栏之你不知道的那点事 File: New : 可以新建tap,窗口,新文件,playground,workspace,target等等. Add Files to ...
- 【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录:http://www ...
- xcode代码提示功能失效的解决方法
xcode 自动提示很好用 然而大量的工作也是让他吃不消了 结果今天提示功能给我来了个罢工 这当然是不行的 也是万能的搜索帮我解决了这个问题 方法很多 选择了简单的 xcode --> Wind ...
- Xcode 8新功能介绍
概述 Xcode 8正式版在9月13日已经推送给开发者下载,下载之后就出现了很多编译错误,之前的插件也不能用了,但是发现Xcode8把好多不错的插件功能整合到自身了,感觉这点也挺不错. 结合自己遇到的 ...
- 利用Idea重构功能及Java8语法特性——优化深层嵌套代码
当遇到深层嵌套代码,如for,if,lambda表达式或内部类及这些代码的组合,这时我们可以通过Java 8的语法特性来进行优化. 下面的代码是一个嵌套循环的示例. public MappedFiel ...
随机推荐
- 解决easyui datagrid加载数据时,checkbox列没有根据checkbox的值来确定是否选中
背景: 昨天帮朋友做一个easyui datagrid的小实例时,才发现easyui datagrid的checkbox列,没有根据值为true或false来选中checkbox,当时感觉太让人失 ...
- 【Ecstore2.0】导出问题解决(未导出或导出文件为0字节)
如果导出队列能成功执行(队列不执行看这里)但是并未生成文件,那么原因大部份可能是出在FTP上. ECSTORE2.0采用了PHP的FTP模块,所以先确认你的环境是否安装了FTP模块,如果没有,安装并在 ...
- range与xrange
range与xrange的用法是完全相同的,不同的是返回结果不同:range返回的是一个list,而xrange返回的是一个生成器.可以来看下 print type(range(5)) print t ...
- 第几天 switch做法 杭电
第几天? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 标签static
静态文本控件的功能比较简单,可作为显示字符串,图标,位图用.创建一个窗口可以使用成员函数: BOOL CStatic::Create( LPCTSTR lpszText, DWORD dwStyle, ...
- 健身计划_from85to75
第一天没什么好写的,这半年也没看什么书,就写写未来的规划好了. 当然是从最简单的健身计划开始写咯. 关键词:弹性 目标:减肥,上肢力量 时间:3-4次/周(Thur,Fri,Sat,Sun),1h-1 ...
- Visual Studio新建的源文件的默认编码
原来VS新建的源文件默认的编码是根据系统locale选择的.我的是国标2312.我草.可坑死我了.一直不知道. 当时主要是需要用doxygen生成html文档,它默认的输入文件的格式是UTF-8,是不 ...
- APP纯黑盒测试---某些可以试试的操作
一.多次快速点击一处功能入口: 该测试方法可以在某些应用中打开俩次目标界面,举一些具体一点的例子: 1.比如现在很多APP需要登陆,如果打开了俩次登录页面,就容易造成登录成功后应用跳转界面又是登录界面 ...
- [每日一题] 11gOCP 1z0-053 :2013-09-30 ASMCMD.......................................................8
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12206095 正确答案:BCD 为了使ASM文件管理更简单,Oracle提供了一个命令实用 ...
- 【Ruby on Rails 学习一】ubuntu14.04配置rvm与ruby
要安装ruby,首先要安装rvm,借助rvm安装ruby rvm 的全称是 Ruby Version Manager ,是一款由 Wayne E. Seguin 开发的一款命令行工具.rvm 能够让 ...