Xcode重构功能怎么用我全告诉你

你会经常需要重构你的代码,让它有更好的结构,可读性或者提高可维护性。Xcode作为IDE其实提供了一些帮助dev重构的功能。你以前可能没有注意到,今天我来给大家介绍一下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后,出现了下面的提示框。

我心中:

相关链接:
https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/RefactorWorkflow.html#//apple_ref/doc/uid/TP40009975-CH17-SW1

时间: 2024-09-17 04:20:33

Xcode重构功能怎么用我全告诉你的相关文章

在Eclipse中创建新的重构功能

创建 对重构的强大支持是软件开发人员喜爱Eclipse的一个最为重要的原因.而Eclipse还有一个至少和重构不相上下的优点,那就是其近乎无懈可击的可扩展性.这两者的结合意味着我们可以根据自己的需要来创建展新的重构功能. 介绍 重构在现代软件开发过程中扮演着重要的角色,它能够减轻软件开发人员的工作负担,提高软件开发的生产效率.为了阐明重构的重要性,我们在这里引用了developerWorks上David Carew提供的关于重构的教程中的一段话: 现在,一个开发者的工作大部分在于对现有的代码进行

探索Eclipse JDT中的重构功能

Eclipse 中的重构功能使其成为了一个现代的 Java 集成开发环境 (IDE),而不再是一个 普通的文本编辑器.使用重构,您可以轻松更改您的代码,而不必担心对别处造成破坏.有 了重构,您可以只关注于所编写代码的功能,而不必分心去考虑代码的外观如何,因为之后 您可以使用重构工具来快捷地将代码变成整洁而高度模块化的代码.本文将向您介绍如何使 用 Eclipse 中的一些功能强大的重构函数. 重构类型 重命名 Rename 应该是 Eclipse 中重常用的重构.利用这个重构,可以对变量.类.方

巧改注册表来增强网络功能—注册表使用全攻略之五_注册表

巧改注册表来增强网络功能-注册表使用全攻略之五 1.指定首选的网络服务器 在注册表中依次展开[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NWNP32\NetworkProvider],并在其主键下创建或更改串值AuthenticatingAgent,附值为指定的服务器 2.禁止自动登陆网络 在注册表中依次展开[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NWNP32\Ne

有人扩展过eclipse的重构功能么?谢谢

问题描述 有人扩展过eclipse的重构功能么?因为比较急,能否给点思路?谢谢 解决方案 本帖最后由 fly1028 于 2010-12-04 01:26:20 编辑解决方案二:Eclipse中提供了几个扩展点,方便扩展重构功能. 基本的重构功能有,Rename,Move,Create,Delete,Copy.对应扩展点即为: org.eclipse.ltk.core.refactoring.renameParticipants org.eclipse.ltk.core.refactoring.

Android中Activity常用功能设置小结(包括全屏、横竖屏等)

本文实例讲述了Android中Activity常用功能设置小结(包括全屏.横竖屏等).分享给大家供大家参考,具体如下: Activity全屏设置 方式1:AndroidManifest.xml 复制代码 代码如下:<activity android:name="myAcitivty"  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> 方式2:代码实现 复制代码 代码如下:requ

jquery全选checkBox功能实现代码(取消全选功能)_jquery

  复制代码 代码如下:  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> &

dwr js-dwr+js实现输入框自动补全功能

问题描述 dwr+js实现输入框自动补全功能 本人技术小白,最近要做毕业设计,哪位大牛能帮帮忙?功能:比如在输入框输入 地球,数据库里和地球有关的信息就是显示在下拉框,这个怎么做? 解决方案 参考:http://cuisuqiang.iteye.com/blog/1541423 解决方案二: 自动补全的图就和这个一样 解决方案三: Dwr实现自动补全功能js自动补全功能实现代码Eclipse 实现关键字自动补全功能 解决方案四: 听你的描述应该是想要联想查询 类似于百度一样 这个你可以通过js驱

jquery实现全选功能效果的实现代码_jquery

主要是模拟一些网页中的表格实现全选功能. <form> 你爱好的运动是: <input type="checkbox" id="Check" value="全选/全不选"/>全选/全不选 <br /> <input type="checkbox" name="items" value="足球" />足球 <input type=&qu

xcode常用快捷键操作大全

  新建项目 command+shift+n 新建文件 command+n 新建空文件 command+control+n 打开 command+o 关闭窗口 command+w 保存所有文件 command+option+s 还原到保存时状态 command+u 创建快照 command+control+s (保存文件快照,以后可进行对比修改情况) 左缩进 command+[ 右缩进 command+] 项目中查找 command+shift+F 查找下一个 command+g 查找上一个 c