在 iOS 9.1/9.2 上使用 EXC_BAD_ACCESS CODE 1 的 AppDelegate 类声明应用程序崩溃

Posted

技术标签:

【中文标题】在 iOS 9.1/9.2 上使用 EXC_BAD_ACCESS CODE 1 的 AppDelegate 类声明应用程序崩溃【英文标题】:App Crashes on AppDelegate Class Declaration with EXC_BAD_ACCESS CODE 1 on iOS 9.1/9.2 【发布时间】:2016-01-03 06:57:43 【问题描述】:

我安装了 XCode 7.1 和 7.2 来分别为 ios 9.1 和 9.2 更新我的应用程序,但每次我在模拟器或设备上运行应用程序时,应用程序都会在 AppDelegate 的类声明中崩溃,如下所示。但是,我也有 XCode 7.0,当我在 iOS 9.0 上运行我的应用程序时,它运行良好,没有任何问题!

问题即使我为 iOS 9.0 编译应用程序,它也会在任何运行 iOS 9.1 或 9.2 的设备上崩溃,我尝试将初始视图控制器更改为简单的普通视图控制器,但似乎它永远不会达到加载视图控制器并且永远不会到达func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool的开头。

Apple 似乎在 iOS 9.1 和 9.2 上做了一些事情。该应用程序是用 swift 编写的,我启用了 NSZombie 和断点来捕获异常,但我从日志中没有得到任何线索。

调试导航器:-

AppDelegate 类声明

【问题讨论】:

您应该能够通过设置几个断点来找出崩溃点。您是否 100% 确定没有触发 didFinishLaunchingWithOptions? 您是否尝试过 1、清理并重建、2、清理构建文件夹并重建、3、从模拟器中删除应用程序并再次运行? @ViktorKucera 是的,我确定,因为我写了一个打印函数作为第一个语句,一旦 didFinishLaunchingWithOptions 触发,日志就会显示什么。唯一会打印的是 init() - 除了调用 super.init() 来测试这个问题之外,我什么都不做 - 在应用程序崩溃。 @RashwanL 是的,我做了所有这些,每次它崩溃时,当我在设备上运行它时就会发生一些事情。同样,如果我在 iOS 9.0 或更低版本的设备或模拟器上运行它,它可以正常工作且没有任何问题的唯一例外。 @MarwanJ 你能解决这个问题吗? 【参考方案1】:

在 Xcode/Swift/iOS 的新版本中几乎每次都会发生这种情况。当我遇到这个问题时,我已经删除了该行并再次写入。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 

【讨论】:

我这样做了,我仔细检查了 iOS 文档,不幸的是我发现 didFinishLaunchingWithOptions 函数声明没有任何问题。【参考方案2】:

当您没有正确设置变量类型时会发生这种情况。检查您如何声明它们。在我的情况下,我试图将 Bool 作为 UIColor 访问。

【讨论】:

【参考方案3】:

当故事板出现问题时,我通常会发生这种情况。例如,错误:

storyboard.instantiateController(withIdentifier: "FooView")

尝试在正在加载的控制器周围设置断点,看看是否是问题所在。

【讨论】:

以上是关于在 iOS 9.1/9.2 上使用 EXC_BAD_ACCESS CODE 1 的 AppDelegate 类声明应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何删除此 EXC_BAD 访问错误?

核心位置作为 ObservableObject 的 SwiftUI 崩溃

又是一年开学季,老学长告诉你弯道超车的法则

在主 UiViewController 中动态声明子 UiViewController

KVO exc_bad_access(代码=1)

错误:“线程 1:EXC_BAD_ACCESS(代码=EXC_I386_GPFLT)