令Swift崩溃的最简单方法是什么?

5
我希望制造一个Swift崩溃,以测试应用程序的某些崩溃处理功能。在C++中,通常我会这样操作来实现此目的:解引用一个NULL指针。
int *i = 0;
*i = 42;

在swift中生成崩溃的最简单方法是什么?


1
强制解包一个可选项 - milo526
4个回答

13

你可以在一个空的可选变量上使用强制解包运算符:

let number: Int? = nil
let val = number!

应该会抛出这样的异常:

致命错误:在展开可选值时意外发现 nil

不过,你还可以使用更优雅的方式让你的应用程序崩溃,使用全局函数 fatalError,它停止程序执行 - 但它接受一些参数,这取决于你试图实现什么目标:

@noreturn func fatalError(@autoclosure message: () -> String = default, file: StaticString = default, line: UWord = default)

4

实际上,我自己找到了另一种方法(虽然我不确定它是否只适用于iOS)。

只需调用abort即可完成任务:

abort()

3

还有一种简单的方法让Swift崩溃:

let testArray = ["1","2","3"]
let a = testArray[4]

这将会抛出一个类似于以下的异常:

致命错误:数组索引超出范围

因为你试图访问数组中不存在的成员。


0

在你的代码中简单地添加fatalError()。

fatalError()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接