在一个类的父类中什么情况下 self 可以表示为它的子类的对象?self 不应该是在哪个类中表示那个类的对象吗?
某草草2017-05-02 09:20:51
iOS의 self 키워드에는 많은 의미와 규칙이 있습니다. 이는 주체가 어떤 클래스에서 어떤 클래스를 참조하는지를 의미하지 않습니다! 우선 이 문제를 해결하세요. Self는 현재 클래스의 객체를 나타내며, 질문에 표시된 그림은 현재 객체의 유형을 보여 주며, 이는 현재 클래스와 모든 상위 클래스를 호출하는 것으로 이해될 수 있습니다. 클래스가 이 메서드를 재정의하지 않은 경우 NSObject의 클래스 메서드가 호출됩니다.
또한 OC의 self 키워드는 범위에 따라 의미와 기능이 다릅니다. 인스턴스 메소드에서 self는 객체의 첫 번째 주소를 나타내고, 클래스 메소드에서는 self가 현재 클래스를 나타냅니다. OC에서는 Class도 객체이므로 self는 다릅니다.