2015-09-10 12 views
11

Qual è il modo più semplice per forzare un arresto anomalo in Swift?Il modo più semplice per forzare un arresto in Swift

Vorrei utilizzare solo una riga di codice (qualcosa che posso aggiungere rapidamente).

Non voglio utilizzare i punti di interruzione, in realtà voglio che l'app si arresti.

+1

provare il 'abort()' 'funzione – Ian

risposta

37

In genere devi usare

fatalError() 

o

preconditionFailure() 

per questo.

Questi fanno esattamente la stessa cosa: terminando il programma, quindi il codice dopo questo stamement non viene mai eseguito. Tutte le funzioni che hanno questo comportamento è annotato con l'attributo @noreturn

Si può anche fare qualcosa di simile:

func getInt() -> Int { 
    fatalError() 
} 

La funzione deve restituire un int, ma perché il programma non viene mai a quella punto, non devi restituire nulla.

+0

Potrebbe essere nell'app di rilascio? Passerà attraverso un processo di certificazione? Voglio dire, app non può arrestarsi durante il processo, ma per me controlla solo la data esatta (dopo 2 mesi da oggi) e poi viene chiamato fatalError. –

+0

@LiborZapletal L'app non deve arrestarsi molto per essere accettata, è meglio gestire gli errori quando si verificano. La tua app dovrebbe bloccarsi solo quando qualcosa è andato storto – Kametrixom

17
[0][1] 

Questo tenta di accedere al secondo elemento di una matrice di un elemento.

+16

[] [0]' è un carattere più breve –

+0

LOL I like it :) – quemeful

+1

come la brevità, ma non è così documento auto così come 'FatalError()' . –

2

Puoi semplicemente provare ad accedere ad un valore opzionale che ha valore nullo ... se hai già una variabile dichiarata ed è opzionale, basta chiamarla (non dimenticare di scartarla) e si bloccherà di sicuro