在Swift中将变量声明为Integer

时间:2016-03-07 01:28:19

标签: swift swift2

所以我试图学习swift和on按钮动作,我想将一个变量声明为一个整数,它从文本字段中收集值,计算它是否为nil并打印该值。为什么要求我让变量保持不变?

这是我尝试过的

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var enterAge: UITextField!
    @IBOutlet weak var catAge: UILabel!

    @IBAction func findAge(sender: AnyObject) {

        var newage = Int(enterAge.text!)

        if newage! == 0
        {

       var catyears = newage! * 7
        catAge.text = "Your cat is \(catyears) in age"
        }

        else
        {

            catAge.text = "Please enter a whole number"
        }

    }
        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.
    }


}

Xcode 7.1版 错误: enter image description here

由于

2 个答案:

答案 0 :(得分:7)

这是警告错误:即使您忽略它,您的程序仍然会编译运行(但是如果你不这样做,那么最好的做法是“T)。

它告诉你,因为你的'变量'被分配了它的初始值和唯一值,然后它只被读取(从未写入)。因此,它不需要是变量;常量会做(并且更好地反映程序的 intent )。

答案 1 :(得分:1)

var - 允许您更改分配后创建的对象或变量的值,

其中,

保持不变,只能初始化一次。 你的代码片段告诉我们你正在使用你的变量来存储从textfield获得的值,之后再也没有改变,考虑你的需求和使用系统建议你将你的变量更改为常量。 将变量更改为常量不会影响您的代码。

如果你想检查,那就写一下

newage = newage + 0

这会产生相同的效果,但现在警告已经消失,我们正在分配/更改变量的值。

希望这能解释您收到警告的原因..