먼저 -removeObserver:
을 사용하고 동일한 이름으로 -addObserver:
을 호출해도 되나요? 또는 -addObserver:
이 먼저 -removeObserver:
앞에 오기위한 규칙입니까?addobserver/removeobserver query
OS 4.0을 사용해 보았는데 문제가없는 것 같습니다 (충돌, 경고 등 ...).
-(void) setObserver
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:OBSERVER_NAME object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector: @selector(selectorName)
name:OBSERVER_NAME
object:nil];
}
이유는 동일한 방법 selectorName
이 경우 -setObserver
방법 다시라는 것을 상정 회 호출되고 두 관측을 방지하는 그 내부 -viewDidLoad
및 메모리 경고가 발행되었다.
또한 -dealloc
동안 -removeObserver:
을 호출해야합니까?
+1 좋은 질문입니다. 이전에 등록되지 않은 Observer를 제거하는 것이 아니라면 알 수 없지만 할당 해제 전에 Observer를 제거해야한다는 것을 알고 있습니다. 주어진 경우에 대해 viewDidUnload에서 관찰자를 제거 할 수도 있습니다. 이것이이 메소드의 목적입니다 : loadView와 viewDidLoad에서 이루어진 모든 호출의 균형을 맞추십시오. – tonklon