title: What does (NSDictionary<NSString *,id> * __nonnull) mean?
body: <p>The parameter type is (<code>NSDictionary&lt;NSString *,id&gt; * __nonnull</code>), and it means the parameter should be a dictionary and never be null. Then what does <code>&lt;NSString *, id&gt;</code> means? Are 'NSString *' and 'id' protocol names?
  Does it mean that dictionary must be a json? But NSString are always object.
  Anyone help? </p>