보기 컨트롤러가 있습니다. 뷰 컨트롤러에는 내 서버에서 모든 데이터 I/O를 처리하는 NSObject 하위 클래스 인 streamController라는 유지 된 객체가 있습니다. 모든 것이 잘됐다. 왜 내가 streamController에서 어떤 것들이 새어 나오는지 알아 내려고 노력하고있다. 나는 거기에 NSLog를 떨어 뜨 렸으며 결코 발사되는 것을 보지 못했다. 나는 왜 내 컨트롤러에 대한 내 dealloc 메서드에서 컨트롤러를 공개하기 때문에 완전히 당황 스럽다. 뷰 컨트롤러 인터페이스 내 클래스의 dealloc이 호출되지 않는 이유는 무엇입니까?
보기 제어기 구현에서StreamController *streamController;
@property (nonatomic, retain) StreamController *streamController;
... StreamController 구현에서
@synthesize streamController;
- (id)init {
[super init];
self.streamController = [[StreamController alloc] init];
}
- (void)dealloc {
NSLog(@"dealloc view controller");
[streamController release];
[super dealloc];
}
...
- (void)dealloc {
NSLog(@"dealloc stream controller");
[super dealloc];
}
이 마지막 할당 해제 가져 결코 라는. 왜?
설정 streamController입니다 도움
희망 (개체의 초기화 등) 전무는 것을 확신하는 경우
나는 B 아니면 C를 사용하는 것이 좋습니다 것인가? – jtbandes
방금 –
을 표시하도록 업데이트되었습니다. 사용 후 * streamController를 해제 하시겠습니까? * 걱정하지 마세요. 코드를 이미 업데이트했습니다. * – elslooo