前言
beginner会对Objective-C中的self与super这两个概念感到迷惑,这篇文章简单的记录了我在学习过程中对它们的理解
正文
概念理解
- super会先从父类方法调用,然后一层一层向上调
- self会从当前类调用,然后一层一层沿着继承层次调,直到找到指定的选择器为止
这里解释一下什么是一层一层往上调: 在继承体系中(树层次结构),可能self(super)指定的方法不属于当前的类(父),它是继承体系中的类A中的方法,我们需要从当前类往上找到类A的方法(找到就不需要向上再找了),然后执行它
[self class] & [super class]
super与self比较容易混淆就是[self class] [super class] 的输出结果。 它们输出得都是当前类,至于原因我感觉没必要理解
附上一个我搜索到的链接Objective-C 中Self 和 Super 详解