问题描述
UIViewRepresentable
有...
associatedtype Coordinator = Void
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
class Coordinator: NSObject,MKMapViewDelegate {
...
}
如果我添加...
typealias Coordinator = Self.Coordinator
编译器说...
无效的“协调人”声明
...指的是嵌套类。
那么Coordinator = Void
是什么意思,为什么定义嵌套类指定关联类型?它是根据makeCoordinator
的返回类型推断出来的吗?为什么不让我另外使用typealias Coordinator = Self.Coordinator
明确指定它?
解决方法
那么,Coordinator = Void是什么意思?为什么定义嵌套类指定关联类型?
Coordinator = Void
表示协调器是可选的,没有协调器即可以表示。 Void
是默认类型。
它是从makeCoordinator的返回类型推断出来的吗?
是的。
为什么不让我另外使用typealias Coordinator = Self.Coordinator明确指定它?
因为typealias
引入了新类型,但是在这里您想要Coordinator = Coordinator
,因此编译器报告重复。如果您愿意,可以将其介绍为
typealias OneMoreCoordinator = Self.Coordinator