美文网首页
Swift中的便利构造函数

Swift中的便利构造函数

作者: 下班不写程序 | 来源:发表于2019-10-08 19:48 被阅读0次
函数

目的: 条件判断, 只有满足条件, 才能实例化出对象, 可以预防不必要的内存开销.
特点: convenience关键字修饰; 不能被重写或者super

下面通过一段代码来了解什么叫便利构造函数

import UIKit

@objcMembers

class Person: NSObject {

    var name: String?
    var age: Int = 0

    // 这是 KVC构造函数 ->也就是 指定构造函数 ->也就代表, 肯定能创建出一个对象, 而且不为 nil
    init(dict: [String: Any]) {
    
        super.init()
        setValuesForKeys(dict)
    }
    
    override func setValue(_ value: Any?, forUndefinedKey key: String) {
        
    }
    
    /* 便利构造函数
     写法:
        - 先写init()方法
        - 添加初始化需要的参数
        - 因为可能初始化成功, 也可能初始化失败, 所以要添加? 使其结果为可选值 init?()
        - 便利函数想要完成初始化, 必须使用自己的指定构造函数, 所以是self, 不是super
        - 添加 convenience 关键字, 代表是一个便利构造函数
    */
    convenience init?(name: String, age: Int) {
        
        if(age < 0 || age > 200){
            return nil
        }
        
        self.init(dict: ["name": name, "age": age])
    }
}
外界使用时的一些疑问: image.png

相关文章

  • Swift中的便利构造函数

    函数目的: 条件判断, 只有满足条件, 才能实例化出对象, 可以预防不必要的内存开销.特点: convenienc...

  • Swift构造函数和便利构造函数

    [转]Swift构造函数和便利构造函数 构造函数基础 构造函数是一种特殊的函数,主要用来在创建对象时初始化对象,为...

  • Swift - 便利构造函数

    对于项目中一些常用的UI控件,往往是根据需求需要写很多重复代码,这样看起来代码就会很繁琐 这个时候就需要便利构造函...

  • swift 便利构造函数

    便利构造函数 便利构造函数允许返回nil, 正常的构造函数一定会创建对象判断给定的条件是否符合条件,如果条件不符合...

  • Swift构造函数-便利构造函数(三)

    convenience 便利构造函数 默认情况下,所有的构造方法都是指定构造函数 Designated conve...

  • Swift 的便利构造函数

    在Swift中可以使用便利构造函数,在对象初始化的时候加入对对象属性的约束来对对象的初始化进行操作,对于不符合属性...

  • Swift面试题总结

    1.convenience : 便利,使用convenience修饰的构造函数叫做便利构造函数 // 便利构造函数...

  • 便利构造函数

    convenience:便利,使用convenience修饰的构造函数叫做便利构造函数 便利构造函数通常用在对系统...

  • Swift 3 扩展(extension)

    swift中的扩展,跟OC中的category很像,注意,这里只能扩展计算属性,如果扩展构造函数,也只能扩展便利构...

  • convenience 便利构造器

    convenience:便利,使用convenience修饰的构造函数叫做便利构造函数便利构造函数通常用在对系统的...

网友评论

      本文标题:Swift中的便利构造函数

      本文链接:https://www.haomeiwen.com/subject/oxtauctx.html