title: Why is it recommended to prefix property requirements with static in Swift protocols?
body: <p>In the <a href="https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html" rel="nofollow">Swift documentation section about Protocols</a>, it is written that :  </p>
  
  <blockquote>
    <p>Always prefix type property requirements with the <code>static</code> keyword when you define them in a protocol. This rule pertains even though type property requirements can be prefixed with the <code>class</code> or <code>static</code> keyword when implemented by a class</p>
  </blockquote>
  
  <p>I don't understand if you should <strong>always</strong> do that or just in specific cases (because later in the docs, <code>static</code> isn't always there).  </p>
  
  <p>Why is it recommended to use <code>static</code>? What does it mean concretely?  </p>
  
  <p>Thank you.  </p>
  
  <p><em>EDIT : The same question applies to methods requirements.</em></p>