私のウェブサーバーコールをインターラインswift 3.0
化するためのフレームワークのサポートとともに、プロジェクトに取り組んでいます。Alamofire
基本的に、メソッドを宣言する場所で以前に使用したシングルトンクラスを使用しswift 2.3
たいので、実行したいビューコントローラーでメソッドを次のように呼び出します。
APIManager.sharedInstance.login(username, password: password, completion: { (user,success) in
if success {
}
}) { (error) in
}
私の要件は、swift 3.0
作業を続行できるように、このコードを機能させることです。これに関するヘルプをいただければ幸いです。My singleton クラスのコードは次のとおりです (このコードは にありswift 2.3
、3.0 でこれが必要です)。
import UIKit
import Alamofire
import SwiftyJSON
struct Singleton {
static let instance : APIManager = APIManager()
}
public class APIManager: NSObject {
public class var sharedInstance: APIManager {
return Singleton.instance
}
let manager = Manager()
override init() {
}
//MARK:====Login====
//MARK: methods
func login(username: String, password: String, completion: (user: User, success: Bool) -> (), failed:(error: NSError) -> ()) -> Request {
let urlRequest // Create a URLRequest and pass to the method
return manager.request(urlRequest)
.validate()
.responseJSON { response in
if let error = response.result.error {
failed(error: error)
print(error)
return;
}
let ok = ((response.result.value as! JSONDictionary)["success"] as? Bool)!
let userJson = JSON((response.result.value as! JSONDictionary)["user"]!)
let token = ((response.result.value as! JSONDictionary)["token"] as? String)!
NSUserDefaults.standardUserDefaults().setValue(token, forKey: UserDefaultKey.Token)
NSUserDefaults.standardUserDefaults().synchronize()
let user = User(json: userJson)
completion(user: user,success: ok)
print ("Auth is : \(token)")
}
}
}