title: Non-'@objc' method does not satisfy requirement of '@objc' protocol
body: <p>I've put the following into a Playground to try and understand this and I just don't:</p>
  
  <pre><code>import Foundation
  
  @objc protocol Sample {
  
      var value: Int { get set }
  
      func increase()
      func decrese()
  
  }
  
  extension Sample {
  
      func increase() {
          value += 1
      }
  
      func decrease() {
          value -= 1
      }
  
  }
  
  class Test: Sample {
  
      var value: Int = 0
  
  }
  
  </code></pre>
  
  <p>The error appears next to the <code>class</code> declaration for <code>Test</code> saying: </p>
  
  <blockquote>
    <p>Non-'@objc' method 'increase()' does not satisfy requirement of '@objc' protocol 'Sample'</p>
  </blockquote>
  
  <p>If I re-declare <code>increase()</code> and <code>decrease()</code> in the class then the warning is silenced. Or also if I remove the declarations from the protocol. Could someone please explain?</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>I do need an Objective-C class to conform to this protocol as well, hence the <code>@objc</code> at the start.</p>