[英]Cannot convert return expression of type
我正在努力解决这个问题。 我有一个动态框架,它实现了一个网络API,让我们使用GitHub。
动态框架使用以下方法实现名为GitHub
的类:
func repos() -> Promise<[Repository]>
promise实现是我自己的实现,它与app目标和动态框架目标共享。
在app目标中,我定义了一个协议Client
。
protocol Client {
func repositories() -> Promise<[RepositoryWrapper]>
}
然后我让GitHub
从这个协议扩展,以便将[Repository]
转换为[RepositoryWrapper]
。
extension GitHub: Client {
func repos() -> Promise<[RepositoryWrapper]> {
return repositories().map({ repos in
repos.map { transform(repository: $0) }
})
}
private func transform(repository: Repository) -> RepositoryWrapper {
return RepositoryWrapper(id: repository.id, nameWithOwner: repository.nameWithOwner)
}
}
但是我目前收到错误消息:
Cannot convert return expression of type 'Promise<[RepositoryWrapper]>' to return type 'Promise<[RepositoryWrapper]>'
我不太清楚如何解决这个问题,因为错误消息表明类型是相同的。 如果需要在Promise上实现map,我很乐意扩展这个问题。
似乎问题是我通过将Promise实现共享给两个目标来使用它。 一旦我将它添加到框架目标并公开在应用程序中使用它,上面的实现就开始工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.