ios - Swift 类中的可选 let 和可选 var

标签 ios swift uiviewcontroller

我是 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()
    }
}

下面的代码没有报错。

class className: UIViewController
{
    var nearbyPlaceRadius : Int?    

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

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

最佳答案

    let nearbyPlaceRadius : Int?   

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

关于ios - Swift 类中的可选 let 和可选 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36123926/

相关文章:

Swift 从 json 数据中删除回调

swift - 如何从 AnyObject 向下转换为 UInt16?

ios - 为什么我不需要为自定义 UIViewController 的 Root View 指定 autoresizingMask?

ios - 在 swift 的 navigationStack 之上重用相同的 viewController

快速创建许多文本字段的网格?

ios - 为什么我的 MFMailComposeViewController 实例只关闭一次?

ios - 同时执行cornerRadius和约束动画

ios - 通过 iOS 8 Widget 断开蓝牙设备

ios - 在 swift 中从一个 .xib 文件实例化多个 UIView 的最干净的方法是什么

ios - 如何快速从字符串中删除字符