Le moulage fonctionne très bien pour les fonctions par exemple.Comment désambiguïsez-vous entre les méthodes statiques des protocoles implémentés?
protocol Protocol1 {}
extension Protocol1 {
func instanceFunc() {}
static func staticFunc() {}
}
protocol Protocol2 {}
extension Protocol2 {
func instanceFunc() {}
static func staticFunc() {}
}
struct Struct: Protocol1, Protocol2 {
func instanceFunc() {
(self as Protocol1).instanceFunc()
(self as Protocol2).instanceFunc()
}
static func staticFunc() {
// My best guess. Nope!
(Struct as Protocol1.Type).staticFunc()
(Struct as Protocol2.Type).staticFunc()
}
}
Voir http://stackoverflow.com/questions/31586864/swift-2-0-protocol-extensions-two-protocols-with-the- same-function-signature-c – Knight0fDragon
Je comprends cela, ainsi que les protocoles ont une crise d'identité quant à savoir s'ils représentent l'interface d'un objet, ou une certaine personnalité de celui-ci, mais étant donné que la personnalité peut être sélectionnée manuellement par exemple fonctions, il devrait en être de même pour les whatevers statiques. – Jessy
Je pense qu'il vous manque le fait que Struct n'est pas un objet, mais que vous essayez de lancer tel quel. Obtenez-vous une erreur comme appel de constructeur après que le nom de type est attendu? – Knight0fDragon