类中有常量,并定义可失败构造器,报错

class TeachSchool
{
    var name : String?
    var location : String?
    var topField : String?
    let advertisement : String? //把这个常量改成变量,就好了

    //指定构造器
    init(name : String,location : String,topField : String,advertisement : String)
    {
        self.name = name
        self.location = location
        self.topField = topField
        self.advertisement = advertisement
    }
    //便捷构造器
    convenience init()
    {
        self.init(name : "蓝翔",location : "山东",topField : "挖掘机",advertisement : "挖掘机哪家强,中国山东找蓝翔")
    }
    //可失败构造器
    init? (has3IDCard : Bool)
    {
        return nil ///会报告这个错误 All stored properties of a class instance must be initialized before returning nil from an initializer
    }
    //可失败构造器
    convenience init! (isRumor : Bool)
    {
        self.init(name : "蓝翔",location : "山东",topField : "挖掘机",advertisement : "挖掘机哪家强,中国山东找蓝翔")
    }
}

最近在学习swift,看的一本书上的例子,会报错,不知道是不是版本的原因,当类的属性有常量的时候,定义可失败构造器会报错 All stored properties of a class instance must be initialized before returning nil from an initializer
这样的话,如果类的属性需要这种特性,该怎么实现呢?哪位大神知道,求告知

标签: swift

添加新评论