0
온라인 변수 JSON의 몇 가지 변수를 가져 오는 함수가 있습니다.이 변수 중 하나는 Approved 변수이며 "true"
으로 설정됩니다. 함수를 호출 할 때 코드가 비동기 적이기 때문에 Approved 변수에 값이 없으므로 처음으로 "거부 됨"경고가 표시됩니다.하지만 내가 무엇을해도 상관 없으므로 작동하지 않습니다. 두 번째 시간까지 이전 값이 저장되고 성공 알림으로 이동합니다.비동기가 아닌 코드 선택
코드 :
@IBAction func approveuser(_ sender: AnyObject) {
theplace = place //Saving variable.
Alamofire.request("https://example.com?variable=\(variable)&requested=\(self.place)").responseJSON{ response in
if let JSON = response.result.value{
let json = JSON as! NSDictionary
Approved = json["Approved"] as! String
LoadedVersion = json["version"] as! String
}
}
if(AppVersion != LoadedVersion){
self.showalert("Update Required", message: "Please update the app", confirm: "Okay")
return
}
if(Approved == "true"){
self.showalert("Approved!", message: "Success", confirm: "Okay")
}else{
self.showalert("Denied!", message: "Denied", confirm: "Okay")
}
}
내가 DispatchQueue.main.async {
을 배치 시도했다 어디든지 내가 코드에서 할 수있는하지만 여전히 내가 넣어 상관없이 작동하지 않습니다.
당신은 실제로 비동기 성질을 받아 들여서 콜백에 물건을 사용해야합니다. 정말로 기다려야한다면, http://stackoverflow.com/a/38758847/14955에서와 같이 세마포어를 사용해보십시오. – Thilo