私のすべてのリクエストを含むAlamofireWebServiceマネージャを作成したいと思います。このクラスのクラス関数をviewControllerで使用し、viewControllerでレスポンスを使用します。 ViewControllerでこのような例で何かを
:
Alamofire WebサービスマネージャはviewControllerでnilを返します
let cardResponse : String?
cardResponse = WebServiceManager.shared.getCardTitle()
私が検索し、私は私の機能でcompletionHandlerをエスケープ使うべき見つけ、そして私がこれを書いた:印刷が正常に動作成功場合
import Foundation
import Alamofire
import SwiftyJSON
class WebServiceManager {
static let shared : WebServiceManager = WebServiceManager()
let apiEndPoint = "My URL"
func getCardTitle(completionHandler: @escaping (NSDictionary?, Error?) ->()) {
Alamofire.request("\(apiEndPoint)")
.responseJSON { response in
switch response.result {
case .success(let value):
print("from .success \(value)")
completionHandler(value as? NSDictionary, nil)
case .failure(let error):
completionHandler(nil, error)
}
}
}
}
をviewControllerでは、単にnilを出力します。
私のViewController:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
WebServiceManager.shared.getCardTitle() { responseObject, error in
// use responseObject and error here
print("responseObject = \(responseObject); error = \(error)")
return
}
}
私は私の応答を印刷するのViewControllerで印刷するにはどうすればよいですか?
はいそれは配列だったので、あまりにもありがとう – arash