Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何从超级协议中获得一致性协议?_Swift_Swift Protocols - Fatal编程技术网

Swift 如何从超级协议中获得一致性协议?

Swift 如何从超级协议中获得一致性协议?,swift,swift-protocols,Swift,Swift Protocols,我试图为一个简单的依赖注入解析一些类型。我正在尝试获取符合另一个协议的协议类型 这就是我想做的: protocol Module {} extension Module { func register() { print(Self) } } protocol Submodule: Module {} struct MyType: Submodule {} print(MyType().register()) // prints "MyType" 有没有办法让它打印子模块,

我试图为一个简单的依赖注入解析一些类型。我正在尝试获取符合另一个协议的协议类型

这就是我想做的:

protocol Module {}
extension Module {
  func register() {
    print(Self)
  }
}

protocol Submodule: Module {}

struct MyType: Submodule {}

print(MyType().register()) // prints "MyType"
有没有办法让它打印子模块,因为它是符合模块的?我正在尝试获取
模块
以了解是什么协议实现了它。

尝试使用super.register()你会得到更好的结果@TruMan