Когда я нажимаю кнопку в первый раз, я получаю сообщение "Ошибка 998".И тогда я получаю "успех 999", когда я нажимаю второй раз.Это должна быть асинхронная проблема, поэтому я добавил строку кода DispatchQueue, но она не сработала.Я должен получить «успех 999», когда я нажму кнопку в первый раз.Как я могу решить эту проблему?(Кстати, swift
версия 4.1)
Вот исходный код:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var lblDetail: UILabel!
var globalTempValue = ""
override func viewDidLoad() {
super.viewDidLoad()
}
struct MyGitHub: Codable {
let resultCode: String?
private enum CodingKeys: String, CodingKey {
case resultCode
}
}
@IBAction func btnClickAction(_ sender: Any) {
callMyApi()
if (globalTempValue == "999")
{
print ("success 999")
}
else
{
print ("fail 998")
}
}
func callMyApi()
{
guard let gitUrl = URL(string: "https://transsupp.com/tApp/ws01.ashx") else
{ return }
URLSession.shared.dataTask(with: gitUrl)
{
(data, response , error) in
guard let data = data else { return }
do
{
let decoder = JSONDecoder()
let gitData = try decoder.decode(MyGitHub.self, from: data)
DispatchQueue.main.async
{
self.globalTempValue = gitData.resultCode!
}
}
catch
let err
{
print("Err", err)
}
}.resume()
}
}
web api возвращает эту структуру:
{
"resultCode": "999",
"resultMessage": "ok",
"showPopUpPage": "True",
"contentTextOfPopUpPage": "ws01Settings4Colors.ashx<br/>table:renkAyarlari<br/>showPopUpPage:True<br/><a href=https://www.google.com>click for the link brother</a>and this a skip line in here<br/>",
"backgroundColor": "4D5656",
"textColorOnThePage": "FFFFFF",
"alertTextColorOnThePage": "E91E63",
"buttonTextColor": "FFFFFF",
"buttonBackgroundColor": "81D4FA",
"alertButtonTextColor": "FFFFFF",
"alertButtonBackgroundColor": "E91E63",
"inputTextColor": "4D5656",
"inputBackgroundColor": "FFFFFF",
"dropDownMenuTextColor": "4D5656",
"dropDownMenuBackgroundColor": "FFFFFF",
"showBackgroundImage": "False",
"backgroundImagePath": "http://transsupp.com/app/Assets/BackgroundImages/other_background.png"
}