objective c 클래스 클러스터2 objective c 클래스 클러스터의 서브 클래스 objective c 클래스 클러스터의 서브 클래스 NSObject는 클래스 클러스터로 구성되지 않기 때문에 이것의 서브클래스를 만드는것은 전혀 문제가 없다. 그러나 기초 프레임워크에서 제공하는 NSObject 이외의 클래스의 서브클래스를 만드는 것에는 신중하여야 한다. 애플 문서에도 명시되어 있지 않은 클래스 클러스터가 숨어 있기 때문이다. 예를들면 NSString의 서브 클래스를 사용자가 만들경우 실제 동작하던 NSString의 메소드는 비공개 서브 클래스의 메소드이므로 서브클래싱이 형성되면서 기존의 메소드는 동작하지 않게 된다. 이 문제를 해결하려면 아래와 같은 몇가지 방버이 있다. 1. 서브클래스 대신 카테고리로 사용자가 원하는 메소드를 추가한다. 대신 인스턴스 변수 추가가 불가능하기 때문에 완전.. 2020. 12. 30. objective c 클래스 클러스터(추상클래스) objective c 클래스 클러스터(추상클래스) 추상(버추얼) 클래스란 추상메소드 (아직 정의되지 않고 선언만된 메소드)를 포함하고 있는 클래스를 뜻한다. 이 추상클래스의 개념은 아래 그림과 같이 UML에도 정의되어 있을 만큼 객체지향 언어에서 필수적인 요소지만, obj c 에서는 추상클래스 기능을 별도로 제공하지 않는다. 그러나 어떤 측면에서는 obj c의 모든 클래스는 잠재적으로 추상클래스 상태라고 볼 수 있다. 위의 추상 클래스를 obj c로 표현하면 아래와 같이 일반 클래스와 동일한 방법으로 작성한다. 다른 언어와 달리 virtual 또는 interface 같은 키워드는 존재 하지 않는다. 이런 이유로 alloc/init을 통해 geometry 클래스를 실제로 선언하는 것도 문제가 되지 않는다... 2020. 12. 29. 이전 1 다음