2010-07-08 3 views

답변

1

init() 메서드가 장면에서 재정의됩니다. 장면 인스턴스가 생성 될 때 기본 클래스 내에서 호출됩니다. 이를 오버라이드하여 자신의 코드를 실행할 기회를 얻습니다.

5

jtalarico가 정확합니다. 나는 그의 대답을 약간 확장하고 싶다.

일반적으로 [init]의 일부 형식은 객체가 인스턴스화 될 때마다 규칙에 따라 호출됩니다. 많은 객체의 경우 [init] 만 있으면되지만 필요한 객체는 [initWithSomething]과 같이 더 복잡한 형태입니다.

Cocos2d에서 init 함수는 일반적으로 Cocos2d에서 객체를 생성하는 데 자주 사용되는 [node] 메소드에 의해 호출됩니다. 예를 들어, CCNode.m 보면, 당신은이 코드를 볼 수 있습니다 :

+(id) node 
{ 
    return [[[self alloc] init] autorelease]; 
} 

다른 목적이 다른 생성자를 가지고,하지만이 주요 예입니다.

그래서 CCNode의 하위 클래스를 만들면 [init] 메소드를 무시하고 객체를 만들 때 자신의 작업을 수행 할 수 있습니다. CCNode가 자체 초기화를 할 수 있도록 [super init]을 호출해야합니다.

+0

cc, 답장을 보내 주셔서 감사합니다. 이것은 모든 것을 설명합니다. – pwang

관련 문제