iOS开发SwiftswiftSwift开发技巧

# 构造函数基础

2015-12-17  本文已影响43人  MarkusFeng

构造函数是一种特殊的函数,主要用来在创建对象时初始化对象,为对象成员变量设置初始值,在 OC 中的构造函数是 initWithXXX,在 Swift 中由于支持函数重载,所有的构造函数都是 init

构造函数的作用

必选属性

class Person: NSObject {

    /// 姓名
    var name: String
    /// 年龄
    var age: Int
}

提示错误 Class 'Person' has no initializers -> 'Person' 类没有实例化器s

原因:如果一个类中定义了必选属性,必须通过构造函数为这些必选属性分配空间并且设置初始值

/// `重写`父类的构造函数
override init() {
    
}

提示错误 Property 'self.name' not initialized at implicitly generated super.init call -> 属性 'self.name' 没有在隐式生成的 super.init 调用前被初始化

/// `重写`父类的构造函数
override init() {
    super.init()
}

提示错误 Property 'self.name' not initialized at super.init call -> 属性 'self.name' 没有在 super.init 调用前被初始化

/// `重写`父类的构造函数
override init() {
    name = "张三"
    age = 18
    
    super.init()
}

小结

子类的构造函数

/// 学生类
class Student: Person {

    /// 学号
    var no: String
    
    override init() {
        no = "001"
        
        super.init()
    }
}

小结

Optional 属性

class Person: NSObject {
    /// 姓名
    var name: String?
    /// 年龄
    var age: Int?
}
上一篇 下一篇

猜你喜欢

热点阅读