1) J'ai les suivantes:
- un champ de texte pour l'utilisateur d'entrer des données comme le nom d'utilisateur
- Ajout d'une activityIndicator
Comment accéder à d'autres viewController quand dans l'analyse syntaxique JSON URLsession
2) lorsque l'utilisateur appuyez sur la touche "Retour" ou "Aller" ou "Terminé" du clavier, elle appellera la fonction SendPostRequest comme ci-dessous.
Le code n'a pas d'erreur de compilation.
Y a-t-il un problème pour naviguer dans l'URLSession?
problème :
se terminant par exception non capturée de type NSException
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
ActivityIndicator.startAnimating()
SendPostRequest()
}
unc SendPostRequest(user: String) {
let Url = String(format: "your url")
guard let serviceUrl = URL(string: Url) else { return }
let parameterDictionary = ["username" : "User1"]
var request = URLRequest(url: serviceUrl)
request.httpMethod = "POST"
request.setValue("Application/json", forHTTPHeaderField: "Content-Type")
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameterDictionary, options: []) else {
return
}
request.httpBody = httpBody
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: []) as! NSDictionary
//condition met:
let jsonStatus: String! = json["Status"] as String
if jsonStatus == "Code123"
self.myActivityIndicator.stopAnimating()
self.performSegue(withIdentifier:"SegueAcct",sender: self)
}catch {
print(error)
}
}
}.resume()
}
Le code ne compile pas. Il y a (au moins) deux problèmes: Swift est sensible à la casse: 'jsonStatus'! =' JsonStatus' et le corps d'une instruction 'if' doit être entre accolades. – vadian
En outre, URLSession s'exécute de manière asynchrone, votre fermeture avec auto-capture forte, peut fuir. –
Désolé, il s'agit d'une faute de frappe. J'ai fait un changement comme ci-dessus. – MilkBottle