ios - 应用程序:didFinishLaunchingWithOptions: method getting called on app crash

标签 ios objective-c swift

请有人给我解决这个问题的方法吗?

不知道为什么

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

方法在应用程序崩溃时被调用(崩溃是我自己创建的以观察此问题,我可以修复此崩溃)。 我通过显示 UILocalNotificationNSUserDefaults 进行了测试。

该问题实际上是在运行 iOS 9.3.2 的 iPhone 6 上观察到的, 但对于配备 iOS 10.0.2 的 iPhone 5C,一切正常(应用程序崩溃时不会调用 application:didFinishLaunchingWithOptions: 方法)。

该项目是用Objective C编写的。

要观察此问题,应该存在真正的崩溃,而不是将应用程序置于后台/非事件状态并由用户向上滑动。

最佳答案

在 application:didFinishLaunchingWithOptions: 方法中添加以下行。

NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);

然后,在您的 appDelegate 中添加以下代码以获取异常原因:

void uncaughtExceptionHandler(NSException *exception) {
  NSLog(@"Exception : %@", exception);
  NSLog(@"Stack Trace: %@", [exception callStackSymbols]);
  // Internal error reporting
}

关于ios - 应用程序:didFinishLaunchingWithOptions: method getting called on app crash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44778181/

相关文章:

android - 将 iOS 应用程序迁移到 Android 机器架构

iphone - 圈养网络 : CNSetSupportedSSIDs usage

swift - 返回上一个 View Controller 时的 UIImage 问题

generics - 如何确定泛型在 Swift 中是否是可选的?

ios - 如何找出SQLITE查询结果为NULL?

ios - 使用 xib 创建可重用的 UIView(并从 Storyboard 中加载)

iOS 模拟器不为 iPhone 旋转(适用于 iPad)

ios - 当 apple sdk 中没有任何 IBOutlets 时,为什么我必须向我的委托(delegate)添加 IBOutlet 标识符?

objective-c - Objective-C : Getting the height and width of a UIView accurately

Swift:元组中的 `weak` 引用