title: "Extra argument 'foo' in call" OR "'[NSObject : AnyObject]!' is not a subtype of 'Dictionary<Key, Value>'"
body: <p>I've read all the "extra argument in call" posts I can find, but am still banging my head against this one. I have a method that looks like this:</p>
  
  <pre><code>// Objective-C
  + (void)get:(NSString *)url params:(NSDictionary *)params completion:(NetworkCompletion)completion
  
  // Swift autocomplete
  GenericWebService.get(url: String!, params: [NSObject : AnyObject]!, completion: (([NSObject : AnyObject]!, NSError!) -&gt; Void)!)
  </code></pre>
  
  <p>My first attempt to use this method in Swift looks like this...</p>
  
  <pre><code>GenericWebService.get("", params: ["foo":"bar"], completion: {
      (responseDictionary: Dictionary, connectionError: NSError) -&gt; Void in
          // foo
      })
  </code></pre>
  
  <p>...and yielded the error <code>Extra argument 'params' in call</code></p>
  
  <p>So I tried to provide a better type match for params (<code>[NSObject:AnyObject]</code>)...</p>
  
  <pre><code>let params: [NSObject:AnyObject] = ["foo":"bar"]
  GenericWebService.getURL("", params: params, completion: {
      (responseDictionary: Dictionary, connectionError: NSError) -&gt; Void in
          // foo
      })
  </code></pre>
  
  <p>...which yields <code>'[NSObject : AnyObject]!' is not a subtype of 'Dictionary&lt;Key, Value&gt;'</code></p>
  
  <p>What boneheaded mistake am I making? :)</p>