Я работаю над приложением 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")
}