Search code examples
swiftalamofireswift3xcode8

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


So I am new to swift as a whole so bear with me.. I had the query working in swift 2 but after I migrated to swift 3 I get the error

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

Below is the code in which it occurs:

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)
        }
})

I am at a loss of what is the problem.


Solution

  • I have Alamofire swift3 branch working in Xcode 8.0 ß6 with the following code:

    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)
                    }
                }
    

    Pay close attention to the order and types of your arguments to .request

    You should have only one Alamofire framework active. Try to redo it in another clone, or maybe try the following in the clone you have?

    pod cache clean --all
    pod install
    

    What does your Podfile have in it?

    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