Vérifiez si la classe est conforme au protocole

Je suis en train de faire une simple Injection de Dépendance pour notre application dans swift, pour 2 jours maintenant. Je suis flexible pour quelle que soit la solution, mais je voudrais quelque chose de si je peux dire "donnez-moi un exemple de quelque chose qui est conforme à ce protocole" et le type réel de restitution peut être que tant qu'il est conforme au dit protocole. J'ai essayé un grand nombre de chose, y compris les génériques, mais réussi à comprendre que cela ne peut pas(?) vraiment travailler, donc maintenant je suis en bas de la nue-notions de base, quelque chose comme ceci:

protocol AProtocol {

}

class AClass: AProtocol {

} 

class MyDiThing {
    public static func objectConformingTo(aProtocol: Any) -> 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)

Il n'est pas beau, je sais, mais pour l'instant je ne suis pas pointilleux sur la performance/mauvais code tant qu'il résout le découplage du problème (et de préférence peuvent être contenus dans le MyDIThing classe). Si cela est impossible dans swift, je suis ouvert à d'autres solutions. J'ai utilisé des solutions similaires avec objective-c avec un bon succès, d'avoir un dictionnaire avec des clés de NSStringFromProtocol et des valeurs de la classe, subscripting le dictionnaire avec le protocole entrants et l'instanciation de la classe. Super simple. En swift, il se sent impossible!

OriginalL'auteur Peter Segerblom | 2015-11-11