簡體   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