PromiseKit 6, Alamofire, Xcode 10.2 / Swift 5 - PullRequest
0 голосов
/ 28 марта 2019

У меня проблемы с написанием следующего кода:

    public
    func
    get(organization inSID: String)
        -> Promise<Organization>
    {
        URLSession.showNetworkActivity()
        return firstly
        {
            let req = buildRequest(path: "/api/\(inUUID)", date: inDate, headers: [.organizationSID : inSID])
            self.mgr.request(req).responseJSON()
        }
        .map()
        { inData, inResp in
            return Organization(sid: "")
        }
        .ensure
        {
            URLSession.hideNetworkActivity()
        }
    }

Я получаю сообщение об ошибке firstly: неоднозначная ссылка на элемент 'first (execute:)'

После добавленияimport PMKAlamofire к началу моего файла, и, будучи более явным, я получаю это для компиляции:

    public
    func
    get(organization inSID: String)
        -> Promise<Organization>
    {
        URLSession.showNetworkActivity()
        return firstly
        { () -> Promise<(json: Any, response: PMKAlamofireDataResponse)> in
            let req = buildRequest(path: "/api/v2/organizations/\(inSID)", headers: [.organizationSID : inSID])
            return self.mgr.request(req).responseJSON()
        }
        .map()
        { inResp in
            return Organization(sid: "")
        }
        .ensure
        {
            URLSession.hideNetworkActivity()
        }
    }

Обратите внимание на добавленный явный () -> Promise<(json: Any, response: PMKAlamofireDataResponse)> и явный оператор return в закрытии firstly,Я не знаю, требуется ли это сейчас Swift 5 или он по-прежнему не может правильно определять типы.

...