重构代码,是我们在做项目过程中总会出现的。不管是重构别人的代码,还是重构自己的代码,有时总会让人很痛苦又惬意。借助IDE的集成功能,一般我们能把其中的痛苦降低些,以前常用eclipse的重构功能来改java的代码。现在常用xcode来做程序,当然要找找xcode上的重构功能啦。很庆幸,apple的产品一般是比较给力的,让我们在惬意中开始来重构代码!
一般在开始重构之前,我们当然是要备份的啦,要是改着改着程序突然莫名其妙地挂了,又找不错误的地方,这时侯如果我们回不到重构之前的状况,那就会让人很泪奔的!所以,xcode给了我们一套保险套餐!----Make Snapshot----也许会让你想起VMware,对,这就是快照!
xcode菜单,选择File-Make Snapshot,Xcode会记住项目当前的状态,现在开始,你就可以随心所欲地重构自己的代码了。如果你发现代码被你改得面目全非?!没关系,我们还可以重来一次,选择File-Snapshot,又回到你做快照的那一刻!
如果发现提示:Snapshot Failed:A project snapshot cannot be created.这是神马错误?不要慌,这时候有可能是一个磁盘镜像文件被损坏了,它是用来存储快照滴,所以请到:~/Library/Application Support/Developer/Shared/SnapshotRepository.sparseimage。把这个镜像文件删掉,然后重启xcode。
备份完,我们才能开始放心的重构!
一般我会采用三种方式来交叉协助重构;
第一 ,当然是我们的老相识:Find and Replace ;这个功能貌似到哪都有,童鞋们追溯到windows下的文本编辑器哦。Edit-Find (command+F),接着,找到并替换就行了。
第二 ,是Edit all in Scope 这个功能,这个功能就强大了,而且比较酷,适合进行大批量的修改变量和方法;选定一个想要修改的字符串,然后选择Edit-Edit all in Scope,然后在你输入的时候,所有该字符出现的地方都进行同步更改,看起来很cool的。
注意一点 :如果选取了一个字符串然后这个功能仍被禁止,很有可能是跟你xcode的配色方案有关,比如像我这种自己改的配色;所以当它谢绝工作时,你可以试着更改一下配色!
第三 ,最强大的一个功能了,以上两个功能都有一个缺陷,不能重构类!我们可以重构量名,方法名,当是却无法重构类名,如果硬要改的话,就得一个文件一个文件的修改,这样万一遗漏了某个文件里的修改,就比较蛋疼了。还好xcode为我们提供了Refactor ,在其他IDE里面也常有这个功能,不过在xcode里面就显得更加性感些了~~首先,选择一个要修改的类名,选择Edit-Refactor,在弹出下面的框里,进行更改,然后点击preview按钮,一般建议勾选上snapshot。
然后再点击那个发生修改的文件,出现下方的对比代码文本。
这样,我们就可以完成在多个文件重构类名了。很轻松搞定,不是吗?