title: Does not conform to protocol 'NSCoding' - Swift 3
body: <p>I have seen several questions similar to mine; however, those are pertaining to swift 2/1 and I am currently using swift 3. I believe Apple has changed it slightly.</p>
  
  <pre><code>class Person: NSObject, NSCoding {
  
      var signature: UIImage
  
      init(signature: UIImage) {
          self.signature = signature
      }
  
      required convenience init(coder aDecoder: NSCoder) {
          let signature = aDecoder.decodeObject(forKey: "signature") as! UIImage
          self.init(signature: signature)
      }
  
      func encodeWithCoder(aCoder: NSCoder) {
          aCoder.encode(signature, forKey: "signature")
      }
  
  }
  </code></pre>
  
  <p>You will notice how Swift 3 now forces me to use <code>required convenience init(</code> instead of <code>required init(</code>. Perhaps that has something to do with it.</p>
  
  <p>How can I resolve this issue? Thanks!</p>