ios - NSSetUncaughtExceptionHandler 没有 swift 捕获异常但是 Crittercism 做到了

标签 ios swift crash crittercism uncaughtexceptionhandler

目的 NSSetUncaughtExceptionHandler就是捕获异常并将其转储到某个地方,以便我们可以找到应用程序崩溃的原因以及异常是什么。

在 Objective C 中,它按预期捕获了异常。这是 reference

但是在 swift 中,当出现异常时它不会被捕获。这是我在 didFinishLaunchingWithOptions

中使用的代码
 NSSetUncaughtExceptionHandler { exception in
            NSUserDefaults.standardUserDefaults().setObject("Exception Details Are \n\nExceptionName--> \(exception.name) \nReason -->\(exception.reason!)\n\(exception.description)", forKey: "Exception")
            NSUserDefaults.standardUserDefaults().setObject("Call Stack Symbols:\(exception.callStackSymbols)", forKey: "ExceptionCallstack")
            NSUserDefaults.standardUserDefaults().synchronize()
        }

这是我用来使应用程序崩溃的片段

    var c=["a","b","c"]
    var d=c[4]

任何人都可以告诉我我在这里做错了什么。

最佳答案

在安装 NSSetUncaughtExceptionHandler 之前初始化 Crittercism。

在处理程序的开头,调用:

[Crittercism logHandledException:exception];//对象

或者 Crittercism.logHandledException(异常)//Swift

关于ios - NSSetUncaughtExceptionHandler 没有 swift 捕获异常但是 Crittercism 做到了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35557716/

相关文章:

ios - CIMaskedVariableBlur 创建不需要的边框

ios - 使用自动布局时,旋转一圈后我没有得到正确的响应

ios - 知道 Swift 中弱变量什么时候变成 nil 吗?

即使在堆上,C++ 程序也会因数组过大而崩溃

ios - 我将如何使用地名然后使用 MKMapView 进行搜索?

ios - 当状态为 "waiting for review"时,iTunes 连接替换二进制文件

objective-c - 如何在 objective-c -swift 桥接项目中使用 intentdefinition 文件?

swift - 出于 CAAnimation 的目的将 Swift 结构转换/包装为 NSValue?

java - Android 中的问答游戏无法获得分数

ios5 - dyld`dyld_fatal_error(iOS上不兼容的api)的原因是什么?