Setting the Desktop background on OSX using Swift 2

In your example you're passing nil as options to the method.

I guess it worked before but now in the comments you showed the current method signature:

(url: NSURL, forScreen screen: NSScreen, options: [String : AnyObject]) throws

We see that options should be a non-Optional Dictionary.

It means you can't use nil anymore for the options parameter: if you don't have options, just pass an empty Dictionary.

Also, now in Swift 2, this method doesn't return a Bool anymore, it throws.

Meaning you have to use it with do try catch:

do {
    let imgurl = NSURL.fileURLWithPath(singleImage)
    let workspace = NSWorkspace.sharedWorkspace()
    if let screen = NSScreen.mainScreen()  {
        try workspace.setDesktopImageURL(imgurl, forScreen: screen, options: [:])
    }
} catch {
    print(error)
}

Updated example for Swift 3:

do {
   let imgurl = NSURL.fileURL(withPath: singleImage)
   let workspace = NSWorkspace.shared()
   if let screen = NSScreen.main()  {
       try workspace.setDesktopImageURL(imgurl, for: screen, options: [:])
   }
} catch {
   print(error)
}