更新到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无效。 有什么想法吗?
答案 0 :(得分:3)
由于Alamofire版本4.0 Migration Guide的迁移指南,您应该使用DataResponse,因此注释的代码行实际上是正确的,但是包含在DataResponse结构中的冗余参数NSError。
固定:
.responseArray { (response: DataResponse<[T]>) in