繁体   English   中英

无法转换返回表达式的类型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM