title: Check if class conforms to protocol
body: <p>I am trying to make a simple Dependency Injection system for our app in swift, for 2 day now. I'm flexible to whatever solution but I would like something so I can say "give me a instance of something that conforms to this protocol" and the actual type returned can be whatever as long as it conforms to the said protocol. I have tried a great many thing including generics but managed to figure out that that can not(?) really work so now I'm down to the bare basics, something like this:</p>
  
  <pre><code>protocol AProtocol {
  
  }
  
  class AClass: AProtocol {
  
  } 
  
  class MyDiThing {
      public static func objectConformingTo(aProtocol: Any) -&gt; Any? {
          // And here I want to do something like
          if AClass is aProtocol {
              return AClass()
          }
          return nil
      }
  }
  
  // The calling code ..
  let aObject = MyDIThing.objectConformingTo(AProtocol)
  </code></pre>
  
  <p>It's not beautiful, I know, but right now i'm not that picky about performance/bad code as long as it solves the decoupling problem (and preferably can be contained in the MyDIThing class). If this is impossible in swift I'm open to other solutions. I have used similar solutions with objective-c with good success, just having a dictionary with keys being NSStringFromProtocol and values being the class, subscripting the dictionary with the inbound protocol and instantiating the class. Super simple. In swift it feels impossible!  </p>