2010-03-24 1 views
3

NSObject에서 하위 클래스로 분류 된 매우 기본적인 데이터 클래스가 있습니다. 몇개의 문자열을 선언하고 속성 (비 원자, 사본)이 있는지 확인한 다음 합성합니다. 구현 한 유일한 방법은 내 문자열을 해제하는 dealloc()입니다. 이 문제로 인해 메모리 문제가 발생할 수 있습니까? 구현해야 할 다른 방법이 있습니까?NSObject를 서브 클래스 화하면 문제가 발생할 수 있습니까?

답변

9

NSObject를 서브 클래 싱하는 것은 우리가 항상하는 일입니다. 메모리 관리 규칙을 따라하면됩니다.

4

아무 것도 설정하려면 사용자 정의 init을 구현할 수 있습니다.

-(id)init { 
    if (!(self = [super init])) 
      return nil; 

    // Set things up you might need setting up. 
    return self; 
} 

하지만 수업에 다른 것을 요구하기 전에 준비하고 싶은 것이있는 경우에만 해당됩니다.

dealloc 메소드를 사용하는 것이 좋습니다.

2

아무런 문제가 없습니다. Subclassing NSObject 완벽하게 허용되며, 필요한 경우의 99 %.

하위 클래스를 NSObject으로 분류하면 하위 클래스가 Cocoa/Cocoa Touch의 모든 개체에 필요한 모든 동작을받습니다. 여기에는 참조 계산 메모리 관리 시스템 (예 : retainrelease 등)이 포함됩니다.

1

현재 수행중인 작업은 정상입니다. 서브 클래스 '-dealloc 메소드 끝 부분에서 [super dealloc]으로 전화하십시오.