@IBOutlet var nameLabel : UILabel!
var finalString: String = "test"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func helloWorldAction(nameTextField: UITextField) {
//fetch data from server
let request = NSMutableURLRequest(URL: NSURL(string: "http://192.168.1.11")!)
request.HTTPMethod = "POST"
let postString = "user=test&pass=test3"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
//error handeling
if error != nil {
println("error=\(error)")
return
}
let responseString = NSString(data: data, encoding: NSUTF8StringEncoding)
self.finalString = String(responseString!)
println("\(self.finalString)");
}
task.resume()
//print finalString
println("finalString = \(finalString)")
}
}
Saya mencoba melakukan dua hal, dan saya akan memberi tahu Anda apa yang tidak berhasil pada keduanya.
Pertama, tidak terlihat dalam kode ini, saya mencoba memberikan nilai UILabel.text
a, itu tidak berhasil sama sekali. Saya tidak bisa melakukannya di dalam fungsi dan saya juga tidak bisa melakukannya di luar. Ini membawa saya ke masalah nomor dua. Ketika finalString dicetak di dalam fungsi, ia akan menghasilkan nilai yang sesuai.
Namun, ketika dicetak di luar fungsi, ia akan mencetak nilai yang pertama kali ditetapkan. Tolong beri tahu saya cara menetapkan nilai UILabel.text
dengan benar dan cara menggunakan output di luar cakupan pertanyaan. Terima kasih sebelumnya.
task.resume
memulai tugas tetapi segera kembali dengan tugas berjalan di latar belakang. Anda perlu melakukan tindakan Anda dengan data yang diambil di penutupan. - person Paulw11   schedule 08.01.2015