2016-08-19 2 views
7

Итак, я новичок в быстром, так что несли со мной .. У меня был запрос, работающий в swift 2, но после того, как я перешел на быстрый 3, я получаю ошибкаНезначительная ссылка на запрос членов() с Alamofire после миграции на swift 3

Неоднозначность ссылка на члена 'запроса (_: withMethod: параметры: кодирование: заголовки :)'

Ниже приведен код, в котором это происходит:

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

Я в недоумении, в чем проблема.

+0

Я пробовал это и ничего не менял. Спасибо, хотя – ryantrapp

ответ

5

У меня есть Alamofire swift3 филиал работает в Xcode 8.0 SS6 со следующим кодом:

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

Па y внимательно следите за порядком и типами ваших аргументов до .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 
3

У меня была такая же проблема - они переупорядочивали параметры в методе, поэтому теперь «.get» следует поместить после с помощью метода МЕТОД.

Если вы используете Alamofire 4.0 в вашем проекте (я предполагаю, что вы делаете, потому что эта ошибка у меня на 4-й версии), вы должны написать

Alamofire.request(serverRequest, withMethod: .get) 

или, например

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

Если вы хотите использовать Alamofire 4, в это время 19 августа вам нужно установить минимальную цель развертывания до 9.0, а в вашем подфайле вам нужно предоставить ветвь swift3, которая официально не выпущена. Воля будет сделана после того, как Apple выпустит семена GM. – pedrouan

+0

По какой-то причине это не сработало. Ошибка не исчезает, однако, если обработка отклика не выполняется. Но это не помогает, потому что мне нужен ответ. – ryantrapp

+0

Не могли бы вы опубликовать скриншот с ошибкой и кодом diplayed, в xcode? – pedrouan

Смежные вопросы