2015-09-10 13 views

Odpowiedz

37

Zwykle byłoby użyć

fatalError() 

lub

preconditionFailure() 

za to.

Robią dokładnie to samo: kończąc program, dlatego kod po tym utworze nigdy nie zostanie wykonany. Wszystkie funkcje, które mają ten problem są opatrzone atrybutem @noreturn

Można też zrobić coś takiego:

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

Funkcja ma zwracać int, ale dlatego, że program nigdy nie dostaje się, że punkt, nie musisz niczego zwracać.

+0

Czy to możliwe w aplikacji o wydanie? Czy przejdzie proces certyfikacji? Mam na myśli oczywiście, że aplikacja nie może się zawiesić podczas procesu, ale dla mnie sprawdza dokładnie dokładną datę (po 2 miesiącach od teraz), a następnie wywołuje fatalError. –

+0

@LiborZapletal Twoja aplikacja nie musi się zbyt mocno zawieść, aby zostać zaakceptowanym. Lepiej jest obsługiwać błędy, gdy się pojawią. Twoja aplikacja powinna się zawiesić tylko wtedy, gdy coś pójdzie nie tak – Kametrixom

17
[0][1] 

Spróbuje uzyskać dostęp do drugiego elementu tablicy jednoczęściowej.

+16

'[] [0]' jest o jeden znak krótszy –

+0

LOL Podoba mi się :) – quemeful

+1

Podobnie jak zwięzłość, ale nie dokumentuje się tak samo jak 'fatalError()' . –

2

Możesz po prostu spróbować uzyskać dostęp do opcjonalnej wartości, która ma zerową wartość ... jeśli masz już zadeklarowaną zmienną i jest ona opcjonalna, po prostu wywołaj ją (nie zapomnij rozpakować), a na pewno się zawiesi

Powiązane problemy