@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)")
}
}
ฉันกำลังพยายามทำสองสิ่ง และฉันจะบอกคุณว่าอะไรที่ใช้ไม่ได้กับทั้งสองอย่าง
ก่อนอื่น ไม่เห็นในโค้ดนี้ ฉันกำลังพยายามกำหนดค่า UILabel.text
ซึ่งไม่ได้ผลเลย ฉันทำภายในฟังก์ชันไม่ได้และทำภายนอกไม่ได้ นี่นำฉันไปสู่ปัญหาหมายเลขสอง เมื่อ FinalString ถูกพิมพ์ภายในฟังก์ชัน มันจะส่งออกค่าที่เหมาะสม
อย่างไรก็ตาม เมื่อพิมพ์นอกฟังก์ชัน จะพิมพ์ค่าที่ได้รับมอบหมายครั้งแรก โปรดบอกวิธีกำหนดค่า UILabel.text
อย่างถูกต้อง และวิธีใช้เอาต์พุตนอกขอบเขตของคำถาม ขอบคุณล่วงหน้า.
task.resume
เริ่มงานแต่จะกลับมาทันทีโดยที่งานกำลังทำงานอยู่เบื้องหลัง คุณต้องดำเนินการกับข้อมูลที่ดึงมาในการปิด - person Paulw11   schedule 08.01.2015