我用Swift和Xcode 6.1.1编写了一个简单的应用程序。这个程序是一个简单的计算器,它可以正常工作,但我无法验证三个文本字段中的非nil输入。因此,如果用户将字段留空,然后点击“计算”,应用程序会崩溃。
该应用程序最初接受三个字符串输入。我编写了一个if语句来检查nil,但它不起作用 - 它只会传递到else。下面是与我的问题相关的代码块:
该应用程序最初接受三个字符串输入。我编写了一个if语句来检查nil,但它不起作用 - 它只会传递到else。下面是与我的问题相关的代码块:
...
@IBOutlet var calcButton: UIBarButtonItem!
@IBOutlet var yearOneField: UITextField!
@IBOutlet var yearTwoField: UITextField!
@IBOutlet var yearThreeField: UITextField!
@IBOutlet var displayWindow: UILabel!
@IBAction func calcButtonTapped(sender: AnyObject) {
if (yearOneField == nil) {
displayWindow.text = ("Non-zero entries are not permitted. Please enter new values.")
} else {
let yearOne = yearOneField.text.toInt()
let yearTwo = yearTwoField.text.toInt()
let yearThree = yearThreeField.text.toInt()
...
我曾尝试评估IBOutlet是否为空,但这并没有起作用。作为Swift和Xcode的新手,希望更有经验的开发者能解答这个问题。谢谢。
self
,那么视图控制器将一直存在,直到你的闭包完成并释放对self
的强引用,或者如果你使用[weak self]
来拥有一个对视图控制器的弱引用,那么当视图控制器被释放时,你的self
将被设置为nil
,你将无法访问@IBOutlets
,因为它们已经不存在了。在任何情况下,你都不必担心这些输出将变成nil
。 - vacawama