清理使用Storyboards的旧Swift应用项目:@IBOutlet/@IBAction移除疑问
无关联标记的@IBOutlet/@IBAction处理指南
基本判断规则
Xcode里@IBOutlet或@IBAction左侧没有圆点,就是没和Storyboard/XIB里的控件绑定,可以直接改成普通属性/方法,@IBAction和@IBOutlet遵循同一规则。
特殊情况注意
偶尔会碰到Xcode索引缓存失效的情况:比如已经在Storyboard里删了关联,但圆点没及时消失。这种概率很低,但还是可以快速验证下,避免误删。
高效检查方法(不用反复编译试错)
- 搜代码引用:用Xcode的「在项目中查找」功能,搜这个IBOutlet/IBAction的名字,看看除了声明外有没有其他地方调用(比如手动代码绑定、其他类引用)
- 搜Storyboard/XIB:打开对应的界面文件,用搜索框搜控件或方法名,确认没有关联项
- 看Connections面板:选中ViewController或者对应控件,点开右侧的Connections Inspector,里面会列出所有已绑定的IBOutlet/IBAction,和代码里的对比,没出现在这里的就能删
总结
无圆点的IBOutlet/IBAction基本都能安全移除,配合上面的检查步骤,完全不用靠编译试错来确认。
内容的提问来源于stack exchange,提问作者AndersHJ
相关产品推荐
相关产品推荐

