重构代码的 5 个 Xcode 技巧

·  阅读 1584
重构代码的 5 个 Xcode 技巧

这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

作为一名开发人员,有时重构代码比写代码的时间都要多,所以知道如何重构一段代码是开发者需要掌握的一项非常重要的技能之一。它还有很多的好处,例如:

  • 有了重构思维,我们从一开始就能有意识的去编写更简洁、更安全的代码
  • 提高代码的可测试性
  • 可以更好的进行 code review

另外,还有专门的书籍和网站去介绍如何进行代码重构。

所以,今天就来分享使用 Xcode 去重构代码的 5 个小技巧。

1. 批量重命名

给属性、参数、方法、类取个好名字不仅可以一看到名字就知道是干什么的,还有利于后期的维护和交接,想想如果变量名都是 test1、test2 之类的,当需求变更,再回头看代码,是有多么的糟心。

那如果想给它们更名,但是调用的地方又比较多,需要怎么重命名呢?有同学说全局替换,emmm... 不够优雅,而且容易替换错。

有两种重命名的场景:

  • rename

适合全局替换的场景。比如,某个方法被多个类调用。就可以使用 Xcode 自带的 rename 特性。只需要右键重命名的对象,即可调出 rename 特性。

Kapture 2021-11-01 at 14.01.41.gif

点及 rename 后,Xcode 会搜索所有需要重命名的地方,搜索完成后会高亮显示。编辑高亮部分,点击右上角 rename 就重命名成功啦。

  • Edit All in Scope

适合重命名的对象只在当前文件中被使用。这种情况下,Xcode 只会搜索当前文件内需要重命名的地方,然后高亮显示。修改好后,回车即可重命名成功。

editallinscope.gif

2. Generate Memberwise Initializer

特别是处理模块、sdk和一些库的时候,不能完全依赖于初始化程序的自动合成。很多时候,我们需要创建自己的公共初始化器,不过就需要复制粘贴各个属性,比较麻烦。还好,Xcode 有一个方便的特性,可以自动创建按成员变量顺序的初始化器。

右键需要 init 的类型,选择 Refactor,然后再选择 Generate Memberwise Initializer。

Xcode 使用 internal 关键字在类型声明的正下方创建初始化器。我们可以将关键字更改为 public (或者我们需要的值) ,然后在需要的地方剪切和粘贴。

memberInit.gif

3. Add Missing Switch Cases

有时我们定义的枚举的 cases 太多,如果对其遍历,手动写每个 case 势必会很浪费时间。那么有什么方法可以自动填充所有 case 呢?

对于 OC 来说,在写好 switch 语法后,右键 switch,既可选择 Add Missing Switch Cases 即可自动填充所有 case,真香~

enumAutoCompleteOC.gif

但是还不够香,对于 Swift 来说,不用写 switch 语法,只需要输入 switch 枚举变量名,回车即可自动填充所有 case。

swiftEnumAutoComplete.gif

OC 快被抛弃了😭

4. 多行编辑

某些情况下,我们要在不同的代码行编写相同的代码,面向 CV 又不是那么的高大上。这时,我们就可以用非常炫酷的快捷键打法来实现。

比如,下面的演示动画,批量把元素加到当前 view 上。

  • 按住 option + shift 结合鼠标左键选择激活多行编辑
  • option 和 shift 别松开,点击右键,选中变量
  • 松开 option 和 shift,然后复制粘贴
  • 最后就可以批量输入相同的代码啦~

没有尝试过的小伙伴,动手试试吧~

多行编辑.gif

5. Find Call Hierarchy

我们在看代码时,有时需要知道函数或变量被调用的所有位置。那么就可以右键方法名称,找到Find Call Hierarchy,在 Xcode 左侧就会出现该方法的调用层级。这样就很方便的知道代码是如何工作的。

findCallTree.gif

结语

以上就是在重构和日常开发中,我觉得非常实用的几个小技巧啦。我也觉得熟练的运用开发工具,可以让我们的开发过程更加的舒服。小伙伴们不妨试一试哦~

也欢迎大家把自己觉得非常好用的一个特性在评论区分享哦~

分类:
iOS
标签:
分类:
iOS
标签: