iOS开发中避免在init中调用的方法和父类init中调用的方法

2022-08-18  本文已影响0人  梁森的简书

调用的结果

  1. 父类init中调用的该方法不会被调用
  2. 子类init中调用的该方法会被调用两次

看过程

image.png
image.png
  1. 子类调用init方法的时候首先会去父类中调用一次init方法
  2. 当在父类的init方法中要调用doSth的时候,实际调用的是子类的doSth,因为此时的self是子类对象。
  3. 在父类的init方法调用完成后,子类会再调用一次doSth

本质原因

[super init]中的super不是父类对象,仍是当前实例对象本身,只不过是去父类对象中调用该方法。

上一篇 下一篇

猜你喜欢

热点阅读