Edd*_*die 5 compiler-construction xcode exc-bad-access swift
我已经看到很多人(包括我)EXC_BAD_ACCESS以未知的原因面对坠机事故。解决方案clean and build the project标记为正确的答案很多。
我很好奇为什么会发生这种情况,以及如何清洁和重新构建它,但似乎人们只是不在乎并继续使用清洁构建解决方案。
这是使用干净构建解决方案的示例EXC_BAD_ACCESS。
就我而言,我面临着这样一个荒谬的事情:
func viewDidLoad() {
super.viewDidLoad()
self.childVC.delegate = self // => Crashed EXC_BAD_ACCESS here. Fixed after clean and build
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这在Swift中比在Objective-C中发生的更多。 难道是Swift的功能吗?
这些是我的想法:
运行后,如果项目尚未构建,则 Xcode 会在以下位置生成所需的构建文件:
〜/库/开发人员/Xcode/DerivedData/
如果未手动或自动清理项目,则在运行的应用程序中会重复使用相同的构建文件,以减少后续的构建时间。
您可能已经注意到,Xcode 有时会在任何重大代码更改后自动清理构建。例如,关于:
但 Xcode 仍然存在缺陷,有时在需要时不会自行清理,从而可以使用“损坏的”构建文件运行,最终导致此类EXC_BAD_ACCESS错误。
清理它会清除旧的构建文件,新的构建不会有同样的问题。