Swift 类中的可选 let 和可选 var

PGD*_*Dev 2 uiviewcontroller ios swift

我是 Swift 的新手并且遇到了问题。

当我optional let在课堂内使用时,它给出了错误“Class className has no initializers ”。

但是当我使用编写相同的代码时 optional var,它没有显示任何错误。

例如:

以下代码给了我错误:Class className has no initializers

class className: UIViewController
{
    let nearbyPlaceRadius : Int?    

    override func viewDidLoad()
    {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
    }
}
Run Code Online (Sandbox Code Playgroud)

以下代码没有给我任何错误。

class className: UIViewController
{
    var nearbyPlaceRadius : Int?    

    override func viewDidLoad()
    {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning()
    {
        super.didReceiveMemoryWarning()
    }
}
Run Code Online (Sandbox Code Playgroud)

sle*_*rfx 5

    let nearbyPlaceRadius : Int?   
Run Code Online (Sandbox Code Playgroud)

实际上,您可以在代码中包含以上行,这并没有错。但是如果你这样做,你必须编写一个init方法并在该方法中设置它的值。