迁移到 swift 后,Alamofire 对成员 request() 问题的引用不明确 3

Ambigious reference to member request() issues with Alamofire after migration to swift 3

所以我是 swift 的新手,所以请多多包涵。我的查询在 swift 2 中运行,但在我迁移到 swift 3 后,我得到了错误

Ambiguous reference to member 'request(_:withMethod:parameters:encoding:headers:)'

下面是它出现的代码:

Alamofire.request(.GET, serverRequest).validate().responseJSON( { response in
        switch response.result{
        case .Success:
            if let JSON = response.result.value {
                let final = JSON[wantedClass] as! String//forces output to string
                self.failure("You asked what your " + wantedClass + " is, it is:", message: final)
            }
        case .Failure(let error):
            print(error)
        }
})

不知道是什么问题

我有同样的问题 - 他们重新排序了方法中的参数,所以现在 '.get' 应该放在 withMethod.

之后

如果你在你的项目中使用 Alamofire 4.0(我假设你这样做,因为我在版本 4 上遇到了这个错误)你需要写

Alamofire.request(serverRequest, withMethod: .get)

或者例如

Alamofire.request(serverRequest, withMethod: .get, parameters: nil, encoding: .url, headers: nil)

我有 Alamofire swift3 分支在 Xcode 8.0 ß6 中工作,代码如下:

Alamofire.request("https://\(ip)/api/version", withMethod: .get, 
    parameters: nil, encoding: .json, headers: headers)
            .validate()
            .responseJSON { response in
                //debugPrint(response)
                switch response.result {
                case .success:
                    if let JSON = response.result.value {
                        let version = Mapper<Version>().map(JSON)
                        print("Version \(version?.server!)")
                    }
                case .failure(let error):
                    print (error)
                }
            }

请密切注意您对 .request

的论点的顺序和类型

您应该只有一个 Alamofire 框架处于活动状态。尝试在另一个克隆中重做它,或者在您拥有的克隆中尝试以下操作?

pod cache clean --all
pod install

你的Podfile里面有什么?

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target 'NewApp' do
    pod 'Alamofire', 
        :git => 'https://github.com/Alamofire/Alamofire.git',
        :branch => 'swift3'
end

如果您正在使用 swift 5

你的条目是这样的

import Alamofire

class AlamofireNetworkRequest {
    static func sendRequest(url: String) {
        guard let url = URL(string: url) else { return }
        .request(url).responseJSON { (response) in
            print(response)
        }
    }
}

在.request前添加AF

像这样

AF.request(url).responseJSON { (response) in