관찰자 제거와 관련하여 기본적인 질문이 있습니다.iOS - dealloc을 사용하여 관찰자 제거
3 개의 ViewController 하위 클래스에 상속 된 ViewController 상위 클래스가 있습니다. 예. BookVC이 -> BookHotelVC, BookFlightVC, BookTrainVC 여기
, 나는 부모 클래스의 viewDidLoad
에서 관찰자를 추가 부모 클래스로 작성하는 방법을 통지한다 (I 아동 ViewControllers에 [super viewDidLoad]
을). 내 코드 -
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(BookingCompleted:) name:@"BookingCompleted" object:nil];
지금 내가 자식 ViewControllers의에서 멀리 이동할 때 관찰자를 제거하고 싶지만, ARC이 허용하지 않기 때문에 나는 각 아동의 ViewController의 dealloc
에 [super dealloc]
을 쓸 수 없습니다.
어떻게 설정되어있는 옵저버를 제거 할 수 있습니까? 왜냐하면 내가 하위 ViewController로 이동할 때마다 이상한 일들을 일으키는 새로운 관찰자가 추가되기 때문입니다 (예 : 그 메소드를 두 번/세 번 호출 ... - 두 번 경고/세 번 호출 ...).
친절히 제안합니다.
을 당신은 내가해야 의미 부모 클래스 자체에'dealloc'을 작성 하시겠습니까? 그것이라면, 나는 처음부터 그것을했지만, 불리지는 않았다. – cheeseRoot
@ pRimei5 해당 개체에 대한 모든 참조가 해제 되었습니까? –