在一个父类中 self 是其子类的对象.

图片描述
在一个类的父类中什么情况下 self 可以表示为它的子类的对象?self 不应该是在哪个类中表示那个类的对象吗?

阅读 2.9k
2 个回答

iOS中的self关键字有很多含义和规则,并不是题主理解的在哪个类中,就指代哪个类的对象!首先纠正这个问题,self表示当前类的对象,而题主所贴图中,显示当前对象的类型,可以理解为调用[self class],,如果当前类和所有父类都没有重写这个方法的话,则都会调用NSObject的class方法。

此外,OC中的self关键字,在不同的作用域中,有不同的含义和作用。在实例方法中,self表示对象的首地址,而在类方法中,self表示的是当前的Class,在OC中Class也是对象,因此self是不一样的,

当那个对象真的是一个子类对象的时候

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进