2017-01-05 14 views
2

после обновления до Xcode8 и Alamofire4 Я получаю сообщение об ошибке «использование необъявленного типа Response» в коде «Response < [T]», (который использует ObjectMapper и область)xcode8 Ошибка обновления Alamofire 4 «использование необъявленного типа Response»

class FetchData { 
static func get <T: Object> (_ type: T.Type, success:@escaping() -> Void,  fail:@escaping (_ error:NSError)->Void)->Void where T:Mappable, T:Meta { 
    Alamofire.request(type.url(), method: .get) 
    .responseArray { (response: Response<[T], NSError>) in 
    //.responseArray { (response: DataResponse<[T], NSError>) in 
      switch response.result { 
      case .success(let items): 
       autoreleasepool { 
        do { 
         let realm = try Realm() 
         try realm.write { 
          for item in items { 
           realm.add(item, update: true) 
          } 
         } 
        } catch let error as NSError { 
         fail(error: error) 
        } 
       } 
       success() 
      case .failure(let error): 
       fail(error: error) 
      } 
    } 
} 
} 

У меня был код, работающий, чтобы отображать данные в область с помощью Object Mapper в соответствии с этим руководством; https://blog.hyphe.me/realm-and-alamofire-in-a-effective-harmony/

Изменение этого параметра на DataResponse не помогло. Любые идеи?

ответ

3

Из-за руководства по миграции Alamofire на версию 4.0 Migration Guide вы должны использовать DataResponse, поэтому прокомментированная строка кода на самом деле правильная, но имеет избыточный параметр NSError, который включен в структуру DataResponse. Исправление: .responseArray { (response: DataResponse<[T]>) in