A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

重写为什么用[super 方法];
      可以不调用super 方法的,这个是根据需求来的
      通常会调用一下
      
      如果要执行父类中对应的方法,就调用,反之可以不调用
      就例如
      1. viewDidLoad 是代表view已经创建完成,但是我们知道view创建完成了,仅仅是
      对象实例化了,至于view是否要显示在界面上,是由系统去做的
      2. 而系统想将view显示在界面上的前提是 view必须创建完成
      3. 那系统如何知道view显示完成了呢?通过viewDidLoad 方法
      4. 所以系统的viewDidLoad方法中,包含了向系统传递消息的机制,这个传递的消息就是
         让系统将view显示在界面上
      5. 如果我们重写了viewDidLoad方法,而不去调用父类中的方法
      6. 那也就代表的父类中所有的方法都不执行,其中不执行的也包括传递消息的机制
      7. 这样也就会造成,系统不知道view是否创建完成
      8. 所以除非自己重写的时候,去额外的在给系统发送这样一个创建完成的机制,否则系统永远都
         不会去将view显示在界面上
      9. 所以调用[super 方法]就是为了让系统本身的方法该怎么运行就怎么运行
      10. 而我们仅仅是在系统方法运行的基础上,去添加自己的一些操作

7 个回复

倒序浏览
赞一个,前两天刚学的,同学在哪学的啊
回复 使用道具 举报
加油,赞一个,加油加油
回复 使用道具 举报
等大神等大神
回复 使用道具 举报
加油加油
回复 使用道具 举报
楼主在哪学的oc啊?我们也学了【super 方法】,但是感觉没你学的深啊
回复 使用道具 举报
学习了~~~~~~~~~
回复 使用道具 举报
学习了~~~~~~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马