我想创建包含我所有请求的AlamofireWebService管理器,并且只在我的viewControllers中使用此类的类函数并在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它只是打印零。
我的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