Swift 3.0: 表达式的类型不明确,需要更多上下文信息?

5
private func makeRequest<T where T:MappableNetwork>(method method: Alamofire.Method, url: String,
                         parameters: [String: AnyObject]?, keyPath: String, handler: NetworkHandler<T>.handlerArray) -> Request {

    let headers = [
        "Authorization": "",
        ]

    return Alamofire
        .request(method, url, parameters: parameters, encoding: .URL, headers: headers)
        .validate()
        .responseArray(keyPath: keyPath) { (response: Alamofire.Response<[T], NSError>) in
            if let error = response.result.error {
                if let data = response.data {
                    let error = self.getError(data)
                    if error != nil {
                        handler(.Error(error: error!))
                        return
                    }
                }
                handler(.Error(error: error))
            } else if let objects = response.result.value {
                handler(.Success(data: objects))
            }
    }
}

我将Swift 2.x代码转换为3.x,但出现错误:“Type expression is ambiguous without more context.”
请参考以下截图: enter image description here

处理程序期望得到什么?您从句点(.)开始,如果无法自动确定,则在句点之前应该是什么? - Yitzchak
好的,我明白了。让我们试试看。谢谢 @Yitzchak - Nirav Hathi
它有效吗?我能发布答案吗?告诉我们缺少了什么? - Yitzchak
是的,它可以工作 @Yitzchak - Nirav Hathi
1个回答

5
您提到的错误提示是编译器无法确定您输入的值的确切类型。
在句号前面必须有内容。有时编译器可以自行理解,但本例中存在多种可能性,因此它是不确定的,并要求您精确指定类名。

@Josh 很高兴听到这个好消息 :) 但是你能否编辑一下你的评论,以便我们理解你是如何解决这个问题的呢?另外,如果它对你有帮助,请考虑点赞 ;) - Yitzchak
1
我的评论毫无意义,我已经筋疲力尽了,对此感到抱歉。 - Josh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接