gpt4 book ai didi

ios - 我应该如何在 Swift 中使用 NSSetUncaughtExceptionHandler

转载 作者:IT王子 更新时间:2023-10-29 05:12:45 24 4
gpt4 key购买 nike

在 Objective-C 中,我调用 NSSetUncaughtExceptionHandler(&exceptionHandler) 方法来记录异常。它在 Swift 中是如何调用的?

最佳答案

从 Swift 2 (Xcode 7) 开始,您可以传递 Swift 函数/闭包以 C 函数指针作为参数。来自 Xcode 7 发行说明:

Native support for C function pointers: C functions that take function pointer arguments can be called using closures or global functions, with the restriction that the closure must not capture any of its local context.

所以这编译和工作:

func exceptionHandler(exception : NSException) {
print(exception)
print(exception.callStackSymbols)
}

NSSetUncaughtExceptionHandler(exceptionHandler)

或者使用“内联”闭包:

NSSetUncaughtExceptionHandler { exception in
print(exception)
print(exception.callStackSymbols)
}

这与相应的 Objective-C 代码完全相同:它捕获其他未捕获的 NSException。所以这将被捕获:

let array = NSArray()
let elem = array.objectAtIndex(99)

注意:- 它不会捕获任何 Swift 2 错误(来自 throw)或 Swift 运行时错误,因此不会捕获:

let arr = [1, 2, 3]
let elem = arr[4]

关于ios - 我应该如何在 Swift 中使用 NSSetUncaughtExceptionHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25441302/

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