xcode的重构功能

时间:2023-01-22 18:00:38

重构代码,是我们在做项目过程中总会出现的。不管是重构别人的代码,还是重构自己的代码,有时总会让人很痛苦又惬意。借助IDE的集成功能,一般我们能把其中的痛苦降低些,以前常用eclipse的重构功能来改java的代码。现在常用xcode来做程序,当然要找找xcode上的重构功能啦。很庆幸,apple的产品一般是比较给力的,让我们在惬意中开始来重构代码!

 

一般在开始重构之前,我们当然是要备份的啦,要是改着改着程序突然莫名其妙地挂了,又找不错误的地方,这时侯如果我们回不到重构之前的状况,那就会让人很泪奔的!所以,xcode给了我们一套保险套餐!----Make Snapshot----也许会让你想起VMware,对,这就是快照!

xcode菜单,选择File-Make Snapshot,Xcode会记住项目当前的状态,现在开始,你就可以随心所欲地重构自己的代码了。如果你发现代码被你改得面目全非?!没关系,我们还可以重来一次,选择File-Snapshot,又回到你做快照的那一刻!

xcode的重构功能

如果发现提示:Snapshot Failed:A project snapshot cannot be created.这是神马错误?不要慌,这时候有可能是一个磁盘镜像文件被损坏了,它是用来存储快照滴,所以请到:~/Library/Application Support/Developer/Shared/SnapshotRepository.sparseimage。把这个镜像文件删掉,然后重启xcode。

 

备份完,我们才能开始放心的重构!

一般我会采用三种方式来交叉协助重构;

第一 ,当然是我们的老相识:Find and Replace ;这个功能貌似到哪都有,童鞋们追溯到windows下的文本编辑器哦。Edit-Find (command+F),接着,找到并替换就行了。xcode的重构功能

 

第二 ,是Edit all in Scope 这个功能,这个功能就强大了,而且比较酷,适合进行大批量的修改变量和方法;选定一个想要修改的字符串,然后选择Edit-Edit all in Scope,然后在你输入的时候,所有该字符出现的地方都进行同步更改,看起来很cool的。xcode的重构功能

注意一点 :如果选取了一个字符串然后这个功能仍被禁止,很有可能是跟你xcode的配色方案有关,比如像我这种自己改的配色;所以当它谢绝工作时,你可以试着更改一下配色!

第三 ,最强大的一个功能了,以上两个功能都有一个缺陷,不能重构类!我们可以重构量名,方法名,当是却无法重构类名,如果硬要改的话,就得一个文件一个文件的修改,这样万一遗漏了某个文件里的修改,就比较蛋疼了。还好xcode为我们提供了Refactor ,在其他IDE里面也常有这个功能,不过在xcode里面就显得更加性感些了~~首先,选择一个要修改的类名,选择Edit-Refactor,在弹出下面的框里,进行更改,然后点击preview按钮,一般建议勾选上snapshot。xcode的重构功能

然后再点击那个发生修改的文件,出现下方的对比代码文本。xcode的重构功能

 

这样,我们就可以完成在多个文件重构类名了。很轻松搞定,不是吗?


1.打开项目
我的项目是Xcode3.x中编辑的,在用Xcode 4 打开时出现了几个项目设置问题的警告,这种情况很好办,只需要选中Validate Project Settings,然后点击Perform Changes即可。

xcode的重构功能

2.Snapshot
在重构之前,有必要对项目进行备份,以便出现问题时可以恢复。最直接的办法就是创建一个项目文件夹的副本了,如果改动比较多,总不能每改一次就复制一个版本吧。Xcode为我们提供了一个“Create Snapshot”的功能,可以在菜单栏File菜单中找到。顾名思义,就是创建一个快照,可以为每个快照命名,添加描述,将项目当前的状态存起来。如果修改失败,可以“Restore Snapshot”,恢复到任何一个已创建的快照。

3.修改项目名称
这一点Xcode4 提供了很方便的解决方案,在菜单中选择View --> Utilities --> Show File Inspector。打开File Inspector,点击项目名称,在Identity下的Preject Name中修改项目名称,在出现的“Rename project content items?”窗口点击“Rename”,项目名称就修改成功了。

xcode的重构功能

xcode的重构功能

xcode的重构功能

4.修改类名(同样适用于修改变量名)
类名的修改就不能在File Inspector中做了,这样只会更改选中文件的名称。进入类的.h或.m文件编辑界面,如图所示选中类名,在右键菜单中选择“Refactor --> Rename”,之后就出现编辑窗口,切记要选中“Rename related files”,“Preview”要修改的文件,“Save”就可以了。

xcode的重构功能

5.设置显示作者、公司名称
以上修改完类名后会发现,文件头部的注释信息是没法随之更改的,这些只能手动更改了,我还还没找到更快的方法。不过可以设置作者和公司信息,这些信息在系统自带的地址簿中可以修改,下次新建文件时就可以自动生成了。

6.格式化代码
整齐的缩进会让代码看起来很漂亮,单独对某行代码增加或减少缩进可以使用快捷键command+]和command+[。如果整篇代码很不规则呢,选中要格式化的代码段,选择菜单栏Editor --> Structure --> Re-Indent,或者直接使用其快捷键 Ctrl+I ,代码缩进瞬间变规范。

7.Edit All in Scope
这个东西很神奇,在修改局部变量名时非常好用。选中某个变量,选择菜单 Editor --> Edit All in Scope,就会出现这样的效果:

xcode的重构功能

这时只要修改其中任意位置的变量名,其他位置变量名也就随之被修改了。

Anyway,良好的编码习惯真的很重要,不要因为赶进度或者觉得只是在写Demo就不注重编码规范和结构设计,彼时的偷懒就会导致此时重构项目的大麻烦了。