2015-10-14 8 views
16

Voglio chiamare un metodo che può qualcosa throw. Allo stesso tempo non mi interessa l'eccezione che può essere generata, voglio solo chiamare il metodo. Tuttavia, se provo a fare qualcosa del genere:Cosa fare con "provare?" Di Swift? che causa "Risultato della prova? non utilizzato"?

try? managedObjectContext.save() 

I warning "Risultato della prova? Non utilizzato". Cosa devo fare in questo caso? Avviso di silenzio? Come?

fare qualcosa di simile:

let error: NSError = try? managedObjectContext.save() 

? L'espressione diventa due volte più grande e rimango costante inutilizzata.

risposta

25

Come vostro requisito, "Allo stesso tempo non mi interessa circa l'eccezione che può essere gettato, voglio solo di chiamare il metodo", fare questo:

try! managedObjectContext.save() 

Ma andrà in crash se un l'errore è stato generato Quindi, utilizzare sotto codice snip per sicurezza:

_ = try? managedObjectContext.save() 
+1

A causa della mia disattenzione ho perso tale variante) Hai ragione. –

+2

Che si arresterà in modo anomalo se viene generato un errore. Vedi la risposta al duplicato collegato. – vacawama

-4

Penso che tu abbia bisogno di qualcosa del genere.

Do { 
try managedObjectContect.Save() 
} 
catch let error { 
    print("error") 
}