2010-01-07 1 views
3

그래서 개체가 하나의 다른 개체로 구성된 복합 개체이기 때문에 dealloc 메서드를 재정의합니다. 모두 동일하게 작동하는지두 가지 dealloc 메소드의 차이점은 무엇입니까?

{ 
    [rect release]; 
    return [super dealloc]; 
} 

그냥 궁금 : 나는 다른 답변을보고 책을보고 후

-(id) dealloc; // Override to release the Rectangle object’s memory 
{ 
    [rect release]; 
    [super dealloc]; 
    return self; 
} 

:

나는 원래이 할당 해제의 방법이 있었다.

감사합니다,

+0

, 내가해야로서 내가 마지막 줄에서 빈 값을 무시 아니에요 저를 말하고있다. – nickthedude

답변

10

그들은 모두 잘못이야. dealloc 반환 void하지 id는 :

- (void) dealloc { 
    [rect release]; 
    [super dealloc]; 
} 
0

은 그냥 NSObject reference을 확인했다 : dealloc 유형을 반환하지 않았습니다. 그래서, 나는 그러한 서명을 정의하는 것이 정확하지 않다고 생각합니다. 따라서 dealloc에 대한 호출은 반환 값을 기대해서는 안됩니다.

당신이 NSObject를 서브 클래스하지 않는 한 ... 내가 실제로 사다리 방법으로 프로그램을 실행하는 것이 지금

+1

NSObject를 서브 클래 싱하는 경우에도 -dealloc은 값을 반환하지 않아야합니다 (Objective-C는 동일 변형 유형을 지원하지 않으므로). – bbum