我正在做一個警報,有幾個文本字段,這將保存在服務器上,一旦保存命中。我設法讓它發揮作用,但發現一些我不明白的奇怪東西。我不確定如何用文字解釋它,所以我會發布有問題的代碼。現在UIAlertController addTextFieldWithConfigurationHandler。奇怪的功能
var enteredName: UITextField!
let myAlert: UIAlertController = UIAlertController(title: "", message: nil, preferredStyle: .Alert)
let saveAction: UIAlertAction = UIAlertAction(title: "Save", style: .Default) { action -> Void in
println(self.enteredName.text)
}
myAlert.addAction(saveAction)
myAlert.addTextFieldWithConfigurationHandler { textField -> Void in
textField.placeholder = "Name"
self.enteredName = textField
}
self.presentViewController(myAlert, animated: true, completion: nil)
,上面的代碼工作,我也沒有與它的問題,但是,我有一個非常相似的代碼塊原本沒有工作。上面的代碼片段將顯示一個帶有文本字段的提醒,輸入內容並點擊保存後會打印您輸入的內容。下面的代碼應該這樣做,但打印空行,我假設空字符串。
var enteredName: String!
let myAlert: UIAlertController = UIAlertController(title: "", message: nil, preferredStyle: .Alert)
let saveAction: UIAlertAction = UIAlertAction(title: "Save", style: .Default) { action -> Void in
println(self.enteredName)
}
myAlert.addAction(saveAction)
myAlert.addTextFieldWithConfigurationHandler { textField -> Void in
textField.placeholder = "Name"
self.enteredName = textField.text
}
self.presentViewController(myAlert, animated: true, completion: nil)
正如你所看到的,沒有太多改變,對我來說,兩個代碼塊看起來應該運行。差異:在代碼片段沒有工作
- 變量是一個字符串,而不是爲UITextField
- 變量被保存到的TextField.text而不是文本框
- 警報被打印的自我。而不是self.enteredName.text
所以我的問題是這樣的,爲什麼底部的文本塊不能正常工作而頂部塊呢?
雖然我知道這不是必需的,但我會很感激你爲什麼投票的意見,所以我可以編輯它以更好地符合,或理解我做錯了什麼,所以我的下一個問題將更多關於主題。 – TaylorAllred 2015-04-02 22:23:32