title: Uses of available in Swift
body: <p>I've going through a Ray Wenderlich tutorial for MVVM and in the view it has </p>
  
  <pre><code>@available(*, unavailable)
  public required init?(coder: NSCoder) {
      fatalError("init?(coder:) is not supported")
  }
  </code></pre>
  
  <p>I understand providing the required init, but I cannot follow why there is @available(*, unavailable).</p>
  
  <p>The *indicates that availability on all platforms - surely we had that already? Aren't we then marking it as unavailable for all platforms - in this case won't the fatalError never be executed? </p>
  
  <p>I've looked at the Swift guide <a href="https://docs.swift.org/swift-book/ReferenceManual/Attributes.html" rel="nofollow noreferrer">https://docs.swift.org/swift-book/ReferenceManual/Attributes.html</a> and still don't understand this</p>