2015-06-29 10 views
4

Я хотел бы сделать быстрый сбой, чтобы проверить некоторые функции управления авариями моего приложения.Какой самый простой способ сделать быстрый сбой?

В C++ я обычно разыменования NULL указатель, чтобы сделать это, например, так:

int *i = 0; 
*i = 42; 

Что самый простой способ для создания аварии в стрижа?

+1

Force разворачивания опционально – milo526

ответ

9

Вы можете использовать принудительные разворачивания оператора на ноль необязательных переменный:

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) 
2

Еще один простой способ сделать быстрый крах:

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

Это сгенерирует исключение, как это:

fatal error: Array index out of range

потому, что вы пытаетесь получить доступ к члену массива, который не присутствует в этот индекс.

3

На самом деле, я нашел другой способ сам (хотя я не уверен, что это спецификация iOS).

Просто вызова прервать сделает работу:

abort() 
Смежные вопросы