xcode8 Alamofire 4更新错误“使用未声明的类型响应”

时间:2017-01-05 09:27:11

标签: swift compiler-errors objectmapper

更新到Xcode8和Alamofire4后,我在代码“Response< [T]”(使用ObjectMapper和realm)上收到错误'使用未声明的类型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无效。 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

由于Alamofire版本4.0 Migration Guide的迁移指南,您应该使用DataResponse,因此注释的代码行实际上是正确的,但是包含在DataResponse结构中的冗余参数NSError。 固定: .responseArray { (response: DataResponse<[T]>) in