iOS学习之——self与super
来源:互联网 发布:怎么样投诉淘宝客服 编辑:程序博客网 时间:2024/06/05 04:38
当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类的方法列表中开始找。然后调用父类的这个方法(从super出现的在的方法所在的类的父类开始查找。)
self和super的用法:
self、super是一个指针,self谁调用了当前方法,self就指向谁
而super指向了当前类的父类,如果super在类方法中,它就代表了调用当前类方法的类的父类,如果在对象方法中,它就代表调用当前对象方法的对象的父类对象
1>如果self、super在类方法中,那么它就代表当前调用这个类方法的类、父类
2>如果self在对象方法中,那么它就代表当前调用这个对象方法的对象、父对象
出现在对象方法中,就代表着当前对象,出现在类方法中,就代表着当前类
Self、super的用途:通下
(1)可以利用self->成员变量名访问当前对象内部的成员变量(仅在对象方法中)
(2)[self 方法名];可以调用其他的对象方法或者是类方法
[super init]的作用:
面向对象的体现,先利用父类的init方法为子类实例的父类部分进行属性初始化。
调用[super init]时可能会alloc失败,所以我们通过判断self ! =nil 来决定是否执行下面的初始化操作,如果为nil 实例创建失败,终止if内的语句执行。
在swift中,就不再允许用户去主动调用init来完成对象的创建及初始化,它是通过init构造函数来完成对象的创建。同时在swift中也有类似的“可能失败的构造器”的概念。
自定义初始化
-(id) init{ //调用父类的init方法执行初始化,将初始化得到的对象赋值给self对象 //如果self不为nil,这表明父类的init方法初始化成功 if(self == [super init]) { //对该对象的_name,_age,_address赋初值 self->_name = @"孙悟空"; self->_age = 500; self->_address = @"花果山水帘洞"; } return self;}
1 0
- iOS学习之——self与super
- iOS学习——self和super关键字的解析
- iOS 之self和super
- 黑马程序员-ios学习笔记:self,super
- iOS开发 self与super总结
- iOS 之self = [super init]
- oc学习笔记1——self,super
- Objective-C(三、类与继承,基类,self、super关键字,多态,组合)——iOS开发基础
- self与super
- super 与 self
- iOS学习笔记:关于if(self=[super init])
- iOS学习(九)Objective-C self和super
- IOS self = [super init];
- OC学习笔记(5)self与super
- self与super的区别
- self与super的区别
- self 与 super 的区别
- self与super 怎么理解?
- OneThink安装失败解决方法
- 将vmware的多个硬盘文件合并为一个
- mysql基本操作(表的增删查改)、约束、表设计
- iOS - html 与 oc交互
- Android aidl Binder框架浅析
- iOS学习之——self与super
- 罗马字母读法
- MySQL的EXPLAIN命令用法
- android中如何解析XML文件
- AndroidStudio导入新项目一直卡在Building gradle project info的解决解决方案
- android网络编程——使用Android中的网络连接
- toLowerCase和toLocaleLowerCase()的区别
- MapReducer入门案例MyWordCount
- oracle常用函数的使用