微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类如何知道关联类型?

如何解决类如何知道关联类型?

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。