Я новичок в IOS и быстро. У меня есть приложение с логином. при нажатии кнопки входа в систему, я отмечаю имя пользователя и пароль, используя метод сообщения. Но в случае успеха я хочу перейти на новый viewcontroller, но он выдаёт мне ошибку API пользовательского интерфейса вызван в фоновом потоке Код нажатия кнопки приведён ниже. Есть ли какая-нибудь асинхронная задача на PostExecute, подобная android в swift, тогда дайте мне знать. Спасибо за помощь.
@IBAction func chkbt(_ sender: Any) {
var url = URL(string: "http://www.miappserver.co.in:8079/chs_server/rest/menuService/getLoginDetails")!
var request = URLRequest(url: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
let postString = "{\"one\":\"*userid*\",\"two\":\"*password*\",\"three\":\"strimg\",\"authApiKey\":\"zpfkenaojjawlwjnbsoej-fhfbs\"}"; // which is your parameters
let idString : String = txtUserId.text!
let passString : String = txtPassword.text!
let newString1 = postString.replacingOccurrences(of: "*userid*", with: idString, options: .literal, range: nil)
let newString2 = newString1.replacingOccurrences(of: "*password*", with: passString, options: .literal, range: nil)
request.httpBody = newString2.data(using: .utf8)
// Getting response for POST Method
DispatchQueue.main.async {
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
return // check for fundamental networking error
}
// Getting values from JSON Response
let responseString = String(data: data, encoding: .utf8)
self.parseJSON(data)
var users = [Meal]()
do{
users = try JSONDecoder().decode(Array<Meal>.self, from: data)
print(users.first?.userId)
//print(users.first?.userPersonName)
if users.first?.userId != nil {
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "Dashboard") as! Dashboard
self.present(newViewController, animated: true, completion: nil)
}
}catch{
print(error)
}
//print("responseString = \(String(describing: responseString))")
//print(responseString)
do {
let jsonResponse = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions()) as? NSDictionary
}catch _ {
print ("OOps not good JSON formatted response")
}
}
task.resume()
}
}