ios - An elegant way to ignore any errors thrown by a method -


i'm removing temporary file nsfilemanager this:

let fm = nsfilemanager() fm.removeitematurl(fileurl) // error: "call can throw not marked 'try'" 

i don't care if file there when call made , if it's removed, it.

what elegant way tell swift ignore thrown errors, without using do/catch?

if don't care success or not can call

let fm = nsfilemanager.defaultmanager() _ = try? fm.removeitematurl(fileurl) 

from "error handling" in swift documentation:

you use try? handle error converting optional value. if error thrown while evaluating try? expression, value of expression nil.

the removeitematurl() returns "nothing" (aka void), therefore return value of try? expression optional<void>. assigning return value _ avoids "result of 'try?' unused" warning.

if interested in outcome of call not in particular error thrown can test return value of try? against nil:

if (try? fm.removeitematurl(fileurl)) == nil {     print("failed") } 

update: of swift 3 (xcode 8), don't need dummy assignment, @ least not in particular case:

let fileurl = url(fileurlwithpath: "/path/to/file") let fm = filemanager.default try? fm.removeitem(at: fileurl) 

compiles without warnings.


Comments