2013-02-02 1 views
6

빠른 질문 :싱글턴 목표 C에서 NSNotificationCenter의 관찰자 제거

나는 여러 NSNotifications에 대해 등록 된 싱글 톤 클래스가 있습니다. 싱글 톤은 앱의 수명 동안 지속되기 때문에.

내가 내 단일 클래스에서

[NSNotificationCenter defaultCenter] removeObserver:self] 

을 구현해야합니까?

iOS의 싱글 톤에서 NSNotification 센터를 처리하는 올바른 방법은 무엇입니까?

감사합니다.

+0

가능한 복제본 [AppDelegate에서 알림을 위해 옵저버를 추가하는 경우이를 제거해야합니까?] (http://stackoverflow.com/questions/9560419/if-add-an-observer-for- a-app-notification-the-appdelegate-do-bother-re) –

답변

9

아니요,이 경우에는 관찰을 중단 할 필요가 없습니다. 진정한 싱글 톤에 의해 사용 된 메모리가 할당 해제 될 유일한 시간은 프로그램이 종료 될 때뿐입니다. 프로그램이 종료되면 계속 진행되고 어쨌든 사용되는 메모리 및 자원 중 모두을 할당 해제합니다.

+0

해명 해 주셔서 감사합니다. – banditKing

+0

기꺼이 도와 드리겠습니다! – lnafziger

0

싱글 톤이 앱 전체에서 알림을 듣고 싶다면 앱을 제거 할 필요가 없습니다.

특정 시점에서 알림을 수신을 중지해야 당신의 싱글은 당신이 당신의 싱글에 방법을 추가 할 수 있으며 그냥 Memory 위해

- (void)removeObserver { 
    [[NSNotificationCenter defaultCenter] removeObserver:self] ; 
} 
2

을 필요한 곳을 호출 할 수 원한다면, 당신은 제대로 제거해야 -dealloc.

+0

나는 내 대답에서 지적했듯이 싱글 톤에서 프로그램은 어쨌든 끝날 때 메모리가 제거 될 것이다 .... 싱글 톤의 전체적인 포인트는 프로그램이 실행되는 한 메모리에 남아있는 것이다. – lnafziger

+0

비 - 싱글 톤 사용을 위해 언젠가 클래스가 변경되는 경우 개발자의 메모리를 제공합니다. – rsc