美文网首页
接口和类方法中的Self

接口和类方法中的Self

作者: 盖小聂 | 来源:发表于2019-06-28 16:48 被阅读0次
protocol Copyable {
    //Self不仅指代实现该接口的类型本身,也包括了这个类型的子类。
    func copy() -> Self
}

class MyClass: Copyable {
    var num = 1
    func copy() -> Self {
        let result = type(of: self).init()
        result.num = num
        return result
    }
    
    required init() {
        //如果需要构建一个Self类型的对象的话,需要有required关键字修饰的初始化方法,这是因为Swift必须保证当前类和其子类都能响应这个init方法。
    }
}

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let object = MyClass()
        object.num = 100
        
        let newObject = object.copy()
        newObject.num = 1
        
        print(object.num) //100
        print(newObject.num) //1
    }
}

相关文章

  • Self 和 lazy

    接口和类方法中的Self 有这样的接口: 返回要为抽象的,表示当前类型的Self, 用dynamicType,如果...

  • 接口和类方法中的Self

  • oc 中 self 、super 的使用

    self 对象方法中的 self 是当前对象,可以访问属性和方法,不能访问类方法类方法中的 self 是类在代码段...

  • Swift基础知识

    一、self和Self 1、self出现在对象方法中,self就代表对象。self出现在类方法中,就代表类。2、S...

  • 单继承

    父类.方法(self,*args)和super(父类名,self).方法 当super(父类名,self).方法 ...

  • 获取类名

    获取类名类方法中 用self 对象方法object_getClass(self)==self.dynamicTyp...

  • 在Objective-C中self关键字到底是什么

    在实例方法中Self指代本类的实例对象。在类方法中Self指代类对象 上面就是结论,注意一下类的实例对象和类对象(...

  • php 面向对象知识点记录

    查找类中属性和方法 self $this static[非修饰符] parent的区别 self代表类本身 sel...

  • Objective-C 类方法中使用self注意事项

    在类(实例)方法中使用self调用方法 在实例方法中self【可以】调用实例方法(最常见)self【不可以】调用类...

  • Self关键字

    Self关键字代表什么 在实例方法中Self指代本类的实例对象。在类方法中Self指代类对象 为什么可以在方法中使...

网友评论

      本文标题:接口和类方法中的Self

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