我声明了一个函数来从一些文本域(POST)发送信息,然后我得到一个响应给出的信息。我还使用组件(separatedBy:String)来获取包含来自每个字段的信息的数组。我现在要做的是使用这些信息(数组中的一个)来存储/使用它,这样我就可以在新视图中向用户显示保存的信息。
My Swift看起来如下
@IBAction func enviarInfo(_ sender: Any) {
let request = NSMutableURLRequest(url: NSURL(string: "http://www.mydomain/index.php")! as URL)
request.httpMethod = "POST"
//The String with the vars that will be sent to the $_POST["var"]
let postString = "nombre=\(nombreText.text!)&aPaterno=\(apaternoText.text!)&aMaterno=\(amaternoText.text!)&genero=\(genero.text! &email=\(emailText.text!)&telefono=\(telefonoText.text!)"
request.httpBody = postString.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request as URLRequest) {
data, response, error in
if error != nil {
print("error=\(String(describing: error))")
return
}
print("response = \(String(describing: response))")
let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print("responseString = \(String(describing: responseString))")
//Use a split method to get relevant information only
let string: String = responseString! as String
var str = string.components(separatedBy: "@@")
let resultadoUno = str[1]
var str2 = resultadoUno.components(separatedBy: ">>")
let resultadoDos = str2[0]
var str3 = resultadoDos.components(separatedBy: ";")
}
task.resume()
}
如果我打印,例如str3 [5]我得到了电话号码,或者带有str3 [0]的名字,但我不知道的是,如何保存数据并通过以下方式显示给用户labels(label.text =数组中的值)。
答案 0 :(得分:0)
您可以轻松地将响应字符串保存到UserDefaults,并在以后恢复和使用它们。
首先,将类级别常量定义为UserDefaults键:
let key = "responseString"
其次,保存字符串:
UserDefaults.standard.set(responseString, forKey: key)
UserDefaults.standard.synchronize()
在需要时恢复并使用它:
guard let repsonseString = UserDefaults.standard.object(forKey: key) as? String else {
return
}
var strArray = repsonseString.components(separatedBy: "@@")
if strArray.count > 0 {
let str2 = strArray[0].components(separatedBy: ">>")
// do something with str2
}
if strArray.count > 1 {
let str3 = strArray[1].components(separatedBy: ";")
if str3.count > 5 {
self.phoneLabel.text = str3[5]
}
}
更好的做法是PHP返回字典而不是数组,如:
{
phoneNumber:123456789,
userName:"Joy"
}
您在iOS上获得响应并将JSON字典转换为Swift字典,并将其解析为模型(如User
类)。然后访问像self.phoneNumberLabel.text = user.phoneNumber