参考 http://www.cocoachina.com/ios/20160127/15097.html
在Xcode菜单中,选择Edit
-> Refactor
可以看到功能菜单。
或者直接在 .h
、.m
文件点击右键也可能看到。
利用它可以方便用户实现代码修改、重构,提高开发效率。
- Rename
- Extract
- Create Superclass
- Move Up...
- Move Down...
- Encapsulate
Rename
对类名、方法名等进行重命名。修改完支持预览功能。
比如对MyViewController类
进行改名:
将代码提取为method
或function
。
- (void)viewDidLoad {
[super viewDidLoad];
_myLabel = [UILabel new];
}
尝试将_myLabel = [UILabel new];
抽取出来:
选中 -> 右键 ->Rector
->Extract
抽取结果如下,非常实用。
- (void)extracted_method {
_myLabel = [UILabel new];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self extracted_method];
}
如果选择了function,就是另外一种格式。(注:Xcode8.1测试了下,闪退了,不知道是不是Xcode的bug)
Create Superclass
就是创建一个当前类的父类。要注意的是要选中类名的时候才能成功触发。
需要注意的是预览界面最左边的导航区,选择中间一个是这次重构会影响到文件列表。可以点击到这个tab下查看其它类的改动。
操作类似,但是能选择创建是不是需要创建单独文件。
Move Up & Move Down
Move Up:可以将一个方法、实例变量移动到父类中去。触发时和重命名一样,要选中*实例名或者方法名后才能正常使用。在category中不适用。
Move Down:相反,将选中的实例变量移动到子类中。是的,方法就不能移到子类了。逻辑上很难理解为什么是这样。但是苹果爸爸就是这么任性。
Encapsulate:封装
这是一个令人怀念的词,多年后看到还是会想起期末考试里面向对象三大特点的填空题。
这个的作用是在你选中一个变量后,会自动帮你生成get、set方法。
可编辑名称
其他
不支持Swift,非常遗憾。
xcode9开始支持