¡No se puede convertir el valor de tipo '(Bool, NSError!) -> Void' al tipo de argumento esperado 'ACAccountStoreRequestAccessCompletionHandler!'

Desde la actualización en Xcode 8 (Beta 1) y Swift 3 tengo un error en esta línea:

account.requestAccessToAccounts(with: accountType, options: nil, completion: {(success: Bool, error: NSError!) -> Void in 

Dice:

¡No se puede convertir el valor de tipo '(Bool, NSError!) -> Void' al tipo de argumento esperado 'ACAccountStoreRequestAccessCompletionHandler!'

Antes de esa línea, definí "count" y "tipo de count":

 let account = ACAccountStore() let accountType = account.accountType( withAccountTypeIdentifier: ACAccountTypeIdentifierTwitter) 

Este es mi código (con Xcode 7 y Swift 2 trabajando):

 func getTimeline() { //https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi&count=2 let account = ACAccountStore() let accountType = account.accountType( withAccountTypeIdentifier: ACAccountTypeIdentifierTwitter) account.requestAccessToAccounts(with: accountType, options: nil, completion: {(success: Bool, error: NSError!) -> Void in if success { let arrayOfAccounts = account.accounts(with: accountType) if arrayOfAccounts.count > 0 { let twitterAccount = arrayOfAccounts.last as! ACAccount let requestURL = URL(string: "https://api.twitter.com/1.1/statuses/user_timeline.json") let parameters = ["screen_name": self.userName!, "count" : "20"] let postRequest = SLRequest(forServiceType: SLServiceTypeTwitter, requestMethod: SLRequestMethod.GET, url: requestURL, parameters: parameters) postRequest.account = twitterAccount postRequest.perform( handler: {(responseData: Data!, urlResponse: HTTPURLResponse!, error: NSError!) -> Void in if error != nil { Crashlytics.shanetworkingInstance().recordError(error) } do { self.dataSource = try JSONSerialization.jsonObject(with: responseData, options: JSONSerialization.ReadingOptions.mutableLeaves) as! [AnyObject] if self.dataSource.count != 0 { DispatchQueue.main.async { self.tableView.reloadData() } } } catch { print("catching") } }) } } else { print("Failed to access account") } }) } 

Debe actualizar su código de la siguiente manera:

  account.requestAccessToAccounts(with: accountType, options: [:]) { (success: Bool, error: Error?) -> Void in // blah blah: the rest of the code } 

Esta versión es para Xcode 8 GM Swift3 (versión normal)

En xcode 8.2 y swift 3, comprobé este método. Retire Bool y NSError delante del éxito y el error y estará listo.

 account.requestAccessToAccounts(with: accountType, options: nil, completion: {(success, error) -> Void in 

Espero que te sirva, buena suerte 🙂