У меня проблемы с написанием следующего кода:
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 или он по-прежнему не может правильно определять типы.