IB_DESIGNABLE引起Xcode编写代码时异常卡顿

最近升级了Xcode9之后,发现Xcode经常性卡顿,菊花常现,已经严重影响到代码的编写了,一开始还以为是Xcode9的问题,后来在网上搜索了下,原来老版本的Xcode就存在这个问题,而且是由于IB_DESIGNABLE这个系统宏导致的。

当我们在自定义视图的定义前面用了IB_DESIGNABLE这个宏来修饰,就表明了我们这个视图是可以在SB/XIB中实时预览的,本来这是一个很好用的功能,我们直接修改了视图代码就可以在SB上直接渲染出来,这真是所见即所得,简直棒到没朋友。但是这功能确实也坑了我们一把,当我们在编写代码时,只要修改了源码,哪怕只敲了一个字符,Xcode也会自动重新编译SB文件,这就很尴尬了,当我们不断敲代码的时候,Xcode就不断地重新编译SB文件,最后导致Xcode异常卡顿。

所以要解决这个卡顿问题,有两个方案:

  • 自定义视图去掉IB_DESIGNABLE宏修饰;
  • 告诉Xcode不自动编译SB文件,选中项目的SB文件,把Editor -> Automatically Refresh Views菜单项的勾去掉即可。

但是我之前用Xcode8的时候就没发现卡顿现象啊,真是够坑的