2010-07-22 9 views
0

내 클래스가 다른 것을 상속 할 수 있도록 클래스의 수퍼 클래스를 선택할 수 있습니까? (alloc 또는 init 메서드가 좋음)?수퍼 클래스를 변경할 수 있습니까?

+1

갑자기 볼보가 코끼리가 되겠습니까? :) – willcodejavaforfood

+0

예. 정확하게. 당신은 소리를 불가능하게 만든다 ... – Chris

+0

Objective-C와 Cocoa 내부에 대해 매우 잘 이해하지 못한다면, alloc을 사용해서는 안된다. 왜 클래스를 바꾸시겠습니까? – Maz

답변

3

-init에서 원하는 대상 클래스의 인스턴스를 만들고 self을 재설정하여이 작업을 수행 할 수 있습니다. 그래도 가능하다면 이전 인스턴스에 -release 메시지를 보내야합니다.

0

아니요, 할 수 없습니다. : 가능합니다.

클래스 (!)는 상대적으로 정적 인 것입니다. 슈퍼 클래스에 "유선 연결"되어 있습니다. 이것은 할당 된 메모리와 다른 것들을 다루는 방법을 알고, 어떤 것이 있어야하기 때문에 중요합니다.

뭔가 다른 인스턴스입니다. 클래스에 "요청"을하면 클래스의 인스턴스를 얻을 수 있습니다. (보통, 하나를 얻으면 초기화 등을 요청합니다.)

이 시점에서 일반적인 동작은 "깨질"수 있습니다. 하지만 제 생각에, 이것은 초보자들에게는 아무런 의미가 없습니다., 그런 일을 할 때 당신은 경험해야합니다! 왜? 애플은 이것에 관해 이야기하고있다. 그리고 심지어 애플도 이런 일을합니다! NSNumber : Cocoa Fundamentals Guide과 같은 클래스 클러스터를 살펴보십시오 (이보다 더 많은 게시물을 올릴 수는 없지만 내 도움 없이는 NSNumber- 문서를 찾을 수 있습니다.)

관련 문제