gpt4 book ai didi

swift - 为什么 XCode Clean and Build 会修复 EXC_BAD_ACCESS?

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:17 24 4
gpt4 key购买 nike

我见过很多人(包括我)因未知原因面临 EXC_BAD_ACCESS 崩溃。许多解决方案的答案 clean and build the project 标记为正确。

我很好奇为什么会发生这种情况以及清理和重建如何修复它,但似乎人们并不关心并继续使用清理构建解决方案。

这是一个 example这些 EXC_BAD_ACCESS 具有干净构建的解决方案。

就我而言,我面临着这样荒谬的事情:

func viewDidLoad() {
super.viewDidLoad()
self.childVC.delegate = self // => Crashed EXC_BAD_ACCESS here. Fixed after clean and build
}

据我所知,这种情况在 Swift 中比在 Objective-C 中更常见。 会不会是 Swift 的特性?

最佳答案

这些是我的想法:

运行后,如果项目尚未构建,则 Xcode 会在以下位置生成所需的构建文件:

~/Library/Developer/Xcode/DerivedData/

如果项目未清理(手动或自动清理),则相同的构建文件将在运行的应用程序中重复使用,以减少后续的构建时间。

您可能已经注意到 Xcode 有时会在任何重大代码更改后自动清理构建。例如,在:

  • 改变静态变量
  • 更改 swift 项目中的 objective-c 代码

但是 Xcode 仍然有它的缺陷,有时在需要时不会自行清理,这使得它可以运行,比方说,“损坏的”构建文件,最终会导致这样的 EXC_BAD_ACCESS 错误。

清理它会清除旧的构建文件,新构建不会有同样的问题。

关于swift - 为什么 XCode Clean and Build 会修复 EXC_BAD_ACCESS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49508633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com