1、self和super OC提供了两个保留字self和super,用于在方法定义中引用执行该方法的对象。 1)self OC语言中的self,就相当于C++、Java中的this指针。 学会使用self,首先要搞清楚属性这一概念。 以及理解getter(访问器)和setter(设置器)方法,它到底有什么用? 设置器与访问器,提供外界操作类内部属性的一个通道。
假如,没有这个方法,外界怎么操作类的内部属性? 假如不提供这两个方法,那么这个属性的值,就不能为外界所改变。 因为类的属性,默认是@protect(受保护类型)。属性一般是私有的
2)super super发送消息可以将方法实现分发其父类。可以重写一个已有的方法来修改或将它添加到现有的方法中,仍然可以将原始的方法纳入到修改后的方法当中 如: //子类的特有方法 - (void)eat{ //super指代的是父类对象 [super run]; //调用父类的run方法 }
2、self的应用场景 1)用在类方法中 2)用在对象方法中 3)访问成员变量 4)self在OC的内存管理特殊使用
我的总结: 如果self写在对象方法中,则指代的就是当前方法的对象([类new]) 如果self写在类方法中,那么它指代的就是当前的类对象(类class)
|