让 swift 崩溃的最简单方法是什么?
What's the easiest way to make swift crash?
我想让 swift 崩溃,以测试我的应用程序的一些崩溃处理功能。
在 C++ 中,我通常取消引用 NULL 指针来执行此操作,如下所示:
int *i = 0;
*i = 42;
在 swift 中生成崩溃的最简单方法是什么?
您可以在 nil 可选变量上使用强制展开运算符:
let number: Int? = nil
let val = number!
那应该抛出这样的异常:
fatal error: unexpectedly found nil while unwrapping an Optional value
然而,您也可以使用更优雅的方式让您的应用程序崩溃,使用 fatalError
全局函数,它会停止程序执行 - 但它会接受一些可能有用的参数,具体取决于您使用的是什么努力实现:
@noreturn func fatalError(@autoclosure message: () -> String = default, file: StaticString = default, line: UWord = default)
让 swift 崩溃的更简单方法:
let testArray = ["1","2","3"]
let a = testArray[4]
这将抛出这样的异常:
fatal error: Array index out of range
因为您正在尝试访问该索引处不存在的数组成员。
其实我自己找到了另一种方法(虽然我不确定它是否iOS具体)。
只需调用 中止 即可完成工作:
abort()
只需在您的代码中添加 fatalError()。
fatalError()
我想让 swift 崩溃,以测试我的应用程序的一些崩溃处理功能。
在 C++ 中,我通常取消引用 NULL 指针来执行此操作,如下所示:
int *i = 0;
*i = 42;
在 swift 中生成崩溃的最简单方法是什么?
您可以在 nil 可选变量上使用强制展开运算符:
let number: Int? = nil
let val = number!
那应该抛出这样的异常:
fatal error: unexpectedly found nil while unwrapping an Optional value
然而,您也可以使用更优雅的方式让您的应用程序崩溃,使用 fatalError
全局函数,它会停止程序执行 - 但它会接受一些可能有用的参数,具体取决于您使用的是什么努力实现:
@noreturn func fatalError(@autoclosure message: () -> String = default, file: StaticString = default, line: UWord = default)
让 swift 崩溃的更简单方法:
let testArray = ["1","2","3"]
let a = testArray[4]
这将抛出这样的异常:
fatal error: Array index out of range
因为您正在尝试访问该索引处不存在的数组成员。
其实我自己找到了另一种方法(虽然我不确定它是否iOS具体)。
只需调用 中止 即可完成工作:
abort()
只需在您的代码中添加 fatalError()。
fatalError()