1
클래스 B의 인스턴스가 클래스 A의 서브 클래스 인 경우, 명시 적으로 코드를 작성하지 않고 클래스 B의 인스턴스를 클래스 A의 인스턴스로 변환 할 수있는 방법이 있습니까?목적 c의 객체를 수퍼 클래스로 다운 그레이드 할 수 있습니까?
나는 단순히 표준 c 구문으로 다운 캐스팅한다는 것을 의미하지 않습니다.
클래스 B의 인스턴스가 클래스 A의 서브 클래스 인 경우, 명시 적으로 코드를 작성하지 않고 클래스 B의 인스턴스를 클래스 A의 인스턴스로 변환 할 수있는 방법이 있습니까?목적 c의 객체를 수퍼 클래스로 다운 그레이드 할 수 있습니까?
나는 단순히 표준 c 구문으로 다운 캐스팅한다는 것을 의미하지 않습니다.
objc 런타임에서는 Objective-C 런타임 참조에서 object_setClass(id object, Class cls)
을 참조 할 수 있습니다. 그러나 더 중요한 점은 거의 확실하게 원하지 않는다는 것입니다. 하위 클래스가 Liskov Substituion Principle을 따르지 않으면 하위 클래스가 아니어야합니다 (즉, 상속 관계가 적절하지 않고 다른 디자인을 선택해야합니다.) 서브 클래스 내에서 수퍼 클래스의 메소드 구현을 항상 [super someMethod]
과 함께 호출 할 수 있습니다 ..