title: Swift 4 "This class is not key value coding compliant"
body: <p>I have a Swift library which is heavily reliant on <code>obj.valueForKey()</code> from <code>NSObject</code>. </p>
  
  <p>After migrating to Swift 4 I've found that these calls always crash with the error "this class is not key value coding-compliant for the key..." unless the property I'm looking for is declared with <code>@objc</code>. </p>
  
  <p>Is it now mandatory to declare properties with <code>@objc</code> for them to be found with this method? Is there an alternative?</p>