2015-09-28 3 views
-1

Я выполняю перенос моего приложения на Swift 2.0. Я воспользовался возможностью также перевести Alamofire с 1.3 до 2.0.Мой маршрутизатор не работает после миграции Swift и обновления Alamofire

Но теперь мое приложение больше не работает, и у меня появилось много ошибок в файле, где я использую Alamofire.

Сначала на моем объявлении перечислимого типа маршрутизатора я получил сообщение об ошибке, которые говорят

private enum Router: URLRequestConvertible { 

EDIT: Вот начало методов, реализующих

URLRequestConvertible

// MARK: URLRequestConvertible 

    var URLRequest: NSURLRequest { 
     let URL = Router.baseURL.URLByAppendingPathComponent(self.path) 
     let URLRequest = NSMutableURLRequest(URL: URL) 
     URLRequest.HTTPMethod = self.method.rawValue 

     switch self { 
     case .Login(let email, let password): 
      return self.encoding.encode(URLRequest, parameters: [ 
       "email": email, 
       "password": password]).0 

     case .Logout: 
      return self.encoding.encode(URLRequest, parameters: nil).0 
} 

Тип 'Rout эр «не соответствует протоколу„“URLRequestConvertible

Во-вторых во все моей просьбе, когда я собираюсь проверить .responseJSON { (_, _, json, error) in я получил сообщение об ошибке, которые говорят тип

кортежа» (NSURLRequest ?, NSHTTPURLResponse? , Result)»(ака '(опционально, опционально, Result)') и '(_, _, _, _)' имеют различное количество элементов (3 против 4)

EDIT: Ok no more error field но как вы делаете свою ошибку? так?

EDIT2: Хорошо, теперь вам нужно использовать переключатель для результата. Thx

Ошибка, что я не имел в своем распоряжении

Спасибо за вашу помощь!

+0

Опубликуйте свой код класса «Router», только методы, реализующие протокол «URLRequestConvertible». – Adam

ответ

1

Для второй ошибки обратитесь к Alamofire странице здесь https://github.com/Alamofire/Alamofire

Как вы можете видеть, что они изменили .responseJSON который теперь возвращает только 3 параметров. В версии 1.3 вместо этого было 4 параметра. В общем, вы просто должны удалить error поле таким образом

.responseJSON { (_, _, json) in 
0

Я думаю, что вам нужно вернуть «NSMutableURLRequest» вместо «NSURLRequest», если у вас нету изменилось уже.

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