title: Why doesn't this closure have the arguments I expect?
body: <p>I have a <code>SettingsViewController</code> and have created a struct to define the information required for each setting.</p>
  
  <pre><code>///Represents a list of the options needed to populate a `SettingsTableViewCell`
  public struct Setting {
      ///The image to use for the icon
      var imageName : String
  
      ///The text to display as the title of the setting
      var title : String
  
      ///Called when the switch is tapped. If no closure is supplied, the switch is hidden
      var switchCallback: ((_ status: Bool)-&gt;())?
  }
  </code></pre>
  
  <p>The view controller keeps an array of these settings to later be used in a table view. An example of one is provided below:</p>
  
  <pre><code>let options : [Setting] =
  [
      Setting(imageName: "notifications", title: "Bump Notifications") {updateNotificationSetting($0)},
      ...
  ]
  </code></pre>
  
  <p>However, when I try to compile, I'm presented with the error:</p>
  
  <pre><code>Cannot convert value of type '(SettingsViewController) -&gt; (Bool) -&gt; ()' to expected argument type '((Bool) -&gt; ())?'
  </code></pre>
  
  <p>Can somebody explain where the <code>(SettingsViewController)</code> is coming from, please? And if you can, what I need to change to fix it, please?</p>
  
  <hr>
  
  <p>For an SSCCE, see below:</p>
  
  <pre><code>import UIKit
  
  ///Represents a list of the options needed to populate a `SettingsTableViewCell`
  public struct Setting {
      ///The image to use for the icon
      var imageName : String
  
      ///The text to display as the title of the setting
      var title : String
  
      ///Called when the switch is tapped. If no closure is supplied, the switch is hidden
      var switchCallback: ((_ status: Bool)-&gt;())?
  }
  
  
  
  @UIApplicationMain
  class AppDelegate: UIResponder, UIApplicationDelegate {
  
      var window: UIWindow?
  
      let options : [Setting] =
      [
          //Error is on the following line
          Setting(imageName: "notifications", title: "Bump Notifications") {isOn in updateSetting(isOn)},
      ]
  
      func updateSetting(isOn : Bool) {
  
      }
  
  }
  </code></pre>