我对package forstaPakage;
import javax.swing.*;
public class FTillC {
public static void main(String[] args) {
int f = Integer.parseInt(JOptionPane.showInputDialog("hur många farenheit?"));
do{
if(f>0 && f<101){
int c = ((f-32)*5) / 9;
System.out.println(f + " farhenheit är lika med " + c + " celcius" );
break;
}
else{
f = Integer.parseInt(JOptionPane.showInputDialog("Ogiltligt värde, skriv in ett nytt"));
}
}while(f>101 || f<1);
}
}
AlamofireObjectMapper
方法有疑问。它是responseObject
从completionHandler
(旧)更改为Response<T, NSError> -> Void
(现在)。也许我没有得到它,但是请您告诉我如何通过此更改提供后端错误处理?之前,我完成了例如DataResponse<T> -> Void
。现在我无法处理后端错误和成功接收数据。或者我应该使用其他方法?
例如现在我有:Xcode 8,swift 3,更新的框架
Response<Object, NSError>
但是当我检查新更新的AlamofireObjectMapper时,此方法的完成现在仅为class func getAllProducts(successCallBack:((ProductsData?) -> Void), failureCallBack: ((NSError?, ServerResponseStatusCode?) -> Void)?) {
Alamofire.request(URLRouter.Products).responseObject {
(response: DataResponse<ProductsData, NSError>) in
// inside completion block code
}
}
形式,因此我得到错误“Generic type”DataResponse“专门用于太多类型参数(得到2)但预计1)“
之前:使用Xcode 7,swift 2.2
DataResponse<T>
非常感谢。
答案 0 :(得分:2)
在使用 Swift 3.0 的 Alamofire 4.0 中,您可能需要在响应闭包内的switch语句中达到错误/失败:
Alamofire.request(URLRouter.Products, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil)
.validate()
.responseObject { response in
switch response.result {
case .success:
//print("...HTTP code: \ (response.response?.statusCode)")
case .failure(let error as NSError):
print("Error: \(error)")
default:
print("Unexpected case")
}
}