NSObject에서 하위 클래스로 분류 된 매우 기본적인 데이터 클래스가 있습니다. 몇개의 문자열을 선언하고 속성 (비 원자, 사본)이 있는지 확인한 다음 합성합니다. 구현 한 유일한 방법은 내 문자열을 해제하는 dealloc()입니다. 이 문제로 인해 메모리 문제가 발생할 수 있습니까? 구현해야 할 다른 방법이 있습니까?NSObject를 서브 클래스 화하면 문제가 발생할 수 있습니까?
3
A
답변
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의 모든 개체에 필요한 모든 동작을받습니다. 여기에는 참조 계산 메모리 관리 시스템 (예 : retain
및 release
등)이 포함됩니다.
1
현재 수행중인 작업은 정상입니다. 서브 클래스 '-dealloc
메소드 끝 부분에서 [super dealloc]
으로 전화하십시오.