Swift3:将失败块从 Swift2 转换为 Swift3 的 AFNetworking 问题
Swift3: AFNetworking Issues converting failure Block from Swift2 to Swift3
我正在将我的 Swift2 代码转换为 Swift3。
Swift2 中的代码
manager.post(url, parameters: dict,
success: { (operation: AFHTTPRequestOperation?, responseObject: Any?) in
self.removeActivityIndicator()
if let jsonDict = self.parseJSON(responseObject) {
callback(jsonDict)
}
},
failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in
self.removeActivityIndicator()
print("Error: " + error.localizedDescription)
var dict = error.userInfo
dict["error"] = error.localizedDescription
if let jsonDict = dict as? Dictionary<String, AnyObject> {
callback(jsonDict)
}
}
)
在失败部分,我收到以下错误消息,
Cannot convert value of type '(AFHTTPRequestOperation!, NSError!) -> ()' to expected argument type '((AFHTTPRequestOperation?, Error?) -> Void)!'
当我将 failure: { (operation: AFHTTPRequestOperation!, error: NSError!)
转换为 failure: { (operation, error)
我在线上遇到错误
var dict = error.userInfo
作为'Value of type Error has no member UserInfo'
。 .按照 Larme 的建议使用 Alamofire 或探索其他服务。 Alamofire 与 AFNetworking 相同并且非常灵活。您将通过代码中的微小更改进行集成。 Swift3,4 对 AFNetworking 的支持不多。
我正在将我的 Swift2 代码转换为 Swift3。
Swift2 中的代码
manager.post(url, parameters: dict,
success: { (operation: AFHTTPRequestOperation?, responseObject: Any?) in
self.removeActivityIndicator()
if let jsonDict = self.parseJSON(responseObject) {
callback(jsonDict)
}
},
failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in
self.removeActivityIndicator()
print("Error: " + error.localizedDescription)
var dict = error.userInfo
dict["error"] = error.localizedDescription
if let jsonDict = dict as? Dictionary<String, AnyObject> {
callback(jsonDict)
}
}
)
在失败部分,我收到以下错误消息,
Cannot convert value of type '(AFHTTPRequestOperation!, NSError!) -> ()' to expected argument type '((AFHTTPRequestOperation?, Error?) -> Void)!'
当我将 failure: { (operation: AFHTTPRequestOperation!, error: NSError!)
转换为 failure: { (operation, error)
我在线上遇到错误
var dict = error.userInfo
作为'Value of type Error has no member UserInfo'
。 .按照 Larme 的建议使用 Alamofire 或探索其他服务。 Alamofire 与 AFNetworking 相同并且非常灵活。您将通过代码中的微小更改进行集成。 Swift3,4 对 AFNetworking 的支持不多。