在 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 类声明应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
核心位置作为 ObservableObject 的 SwiftUI 崩溃