我正在使用用于快速3.0的允诺工具包,并且我试图用
response.result.value
因此,我可以在我的ViewController函数中使用它:
FeedbackServices.getFeedbackSubjects().then { (FeedbackSubject) -> Void in
print(FeedbackSubject.count)
}.catch { (error) in
print(error.localizedDescription)
}
这是我的网络层:
protocol NetworkService
{
static func GET<T:EVObject>(URL: String, parameters: [String: AnyObject]?, headers: [String: String]?) -> Promise<T>
static func GET<T:EVObject>(URL: String, parameters: [String: AnyObject]?, headers: [String: String]?) -> Promise<[T]>
}
extension NetworkService
{
static func GET<T:EVObject>(URL: String,
parameters: [String: AnyObject]? = nil,
headers: [String: String]? = nil) -> Promise<[T]>
{
return Promise { fullFill, reject in
Alamofire.request(URL,
method: .get,
parameters: parameters,
encoding: URLEncoding.default,
headers: headers).responseArray(completionHandler: { response in
if (response.result.isSuccess) {
fullFill([response.result.value])
}else{
reject(response.result.error!)
}
})
}
}
当我试图构建项目时,我得到以下错误:
我现在在工作中被困了几个小时,但我不能工作。如有任何补充资料,请随时问我!
发布于 2017-03-22 22:02:29
我修正了它,在完成处理程序中给出了“响应”:
response: DataResponse<[T]>
最好凯文。
发布于 2017-03-22 22:02:57
我相信问题就在这条线上?
fullFill([response.result.value])
根据错误,看起来您应该传递一个数组,但是您要传递一个数组数组:)所以,我怀疑response.result.value可能已经是一个数组了。看看是否是这样。如果是,请将行更改为:
fullFill(response.result.value)
https://stackoverflow.com/questions/42968201
复制