Значения переменной не сохраняют Swiftui - PullRequest
1 голос
/ 19 июня 2020

Я работаю над приложением swiftui, в котором я получаю данные для входа от пользователя при входе в систему. Но по какой-то причине данные, которые я сохраняю в переменной, просто не сохраняются. Данные извлекаются из api, и когда функция Post работает, данные есть, но как только функция завершает работу, данные превращаются в ноль.

@Published var userData : SignInData?
@Published var signInSuccess: Bool = false

func signIn(bodyData:Any, completion: @escaping((Error?, SignInData?) -> Void)) { /
        if let url = URL(string: signInURL) {
            let session = URLSession.shared

            var request = URLRequest(url: url)
            request.httpMethod = "POST"
            request.httpBody = try! JSONSerialization.data(withJSONObject: bodyData)

            let task = session.dataTask(with: request) { (data, response, error) in
                if error == nil {
                    let decoder = JSONDecoder()
                    if let safeData = data {
                        do {
                            let results = try decoder.decode(SignInData.self, from: safeData)

                            DispatchQueue.main.sync {
                                //print(results)
                                self.userData = results
                                completion(nil,results)
                                self.signInSuccess = true
                            }

                        } catch {
                            print(error)
                            completion(error,nil)

                        }
                    }
                }

            }
            task.resume()
        }
    }

    struct SignInData: Codable{
    var Message : String?
    var UID : String?
    var Dob : String?
    var FirstName : String?
    var LastName : String?
    var UserName : String?
    var Status:String?
    var Rank : String?
    var Cell : String?
    var Insider : String?
    var Interests : String?
    var Gender : String?
    var Location : String?
    var ParentsStatus : String?
    var School : String?
    var FB_username: String?
    var FB_score : String?
    var IG_username : String?
    var IG_score : String?
    var TW_username : String?
    var Tw_score : String?
    var Email: String?
    var Balance : String?
}

Здесь я называю это в другом классе

@ObservedObject var networkManager = NetworkManager()

if self.networkManager.userData?.Status == "0"{
     print("the account is not activated yet")
}
else{
     print("successful")
}



...