Cannot convert value of type '() -> Void' to expected argument type '(() -> Void)?'
<p>I am trying to fix my finale error whilst trying to convert to Swift 3, however I am unsure why I am getting the error </p>

<blockquote>
  <p>Cannot convert value of type '() -> Void' to expected argument type '(()
  -> Void)?'</p>
</blockquote>

<p>For </p>

<pre><code> CATransaction.setCompletionBlock(completion)
</code></pre>

<p>Complete Function </p>

<pre><code>fileprivate func deleteRowsAtIndexPaths(_ indexPaths: [IndexPath], withRowAnimation animation: UITableViewRowAnimation, duration: TimeInterval, completion:() -&gt; Void) {
    CATransaction.begin()
    CATransaction.setCompletionBlock(completion) //Error
    UIView.animate(withDuration: duration) { () -&gt; Void in
        self.deleteRows(at: indexPaths, with: animation)
    }
    CATransaction.commit()
}
</code></pre>

<p>Does anybody know why I am getting this and how I can resolve the error ? </p>