title: How to solve the error: Cannot invoke initializer for type `......` with an argument list of type`...`?
body: <p>I need help with solving the error: </p>
  
  <blockquote>
    <p>Cannot invoke initializer for type 'QuotesViewController.RandomItems' with an argument list of type '(items: [String], seen: Int)'</p>
  </blockquote>
  
  <p>This is my code:</p>
  
  <pre><code>struct RandomItems: Codable
  {
      var items : [String]
      var seen  = 0
  
      init(_ items:[String])
      { self.items = items }
  
      mutating func next() -&gt; String
      {
          let index = Int(arc4random_uniform(UInt32(items.count - seen)))
          let item  = items.remove(at:index)
          items.append(item)
          seen = (seen + 1) % items.count
          return item
      }
      func toPropertyList() -&gt; [String: Any] {
          return [
              "items": items,
              "seen": seen
          ]
      }
  
  
      }
  }
  
  extension QuotesViewController.RandomItems {
      init?(propertyList: [String: Any]) {
          return nil
      }
  }
  
  let a = QuotesViewController.RandomItems(items: ["hello"], seen: 2) //&lt;-- Error
  let data: Data = try! JSONEncoder().encode(a)
  let b = try! JSONDecoder().decode(QuotesViewController.RandomItems.self, from: data)
  </code></pre>