2011-02-11 3 views

답변

3

다른 사람에게 직접 알림을 게시하지 마십시오. 알림의 이름과 보낸 사람이 알림을받는 사람을 결정합니다.

관심있는 개체는 알림을 구독 할 수 있습니다. 알림을 게시하면 해당 이름으로 알림을 듣고있는 모든 구독자에게 알림이 전송됩니다.

  • 알림 이름 (문자열)
  • 보낸 사람

class documentation는 명확하게 보여 실제로 코코아 알림은 두 가지 수준에서 불통 될 수있다.

여기에 만들 때 사용 된 것을 통지 이름과 보낸 사람에 따라 통지 할 사용자를 보여주는 문서에서 약간의 ASCII 테이블이다 :

지정되지 않은
 
Notification name | Notification sender | Notification set specified 
-------------------------------------------------------------------- 
Specified   | Specified   | Notifications with a particular name from a specific sender. 
Specified   | Unspecified   | Notifications with a particular name by any sender. 
Unspecified  | Specified   | Notifications posted by a specific sender. 
Unspecified  | Unspecified   | All notifications. 

은 전무 값이 해당 필드에 대해 제공되었음을 의미합니다.

알림을 사용하면 느슨하게 결합 된 디자인을 구현할 수 있습니다. 이는 객체가 구현시 함께 묶이지 않고 서로 독립적으로 작동 할 수 있기 때문입니다.

+0

설명해 주시겠습니까? "알림은 느슨하게 결합 된 디자인을 허용합니다. 객체가 구현시 함께 묶이지 않고 서로 독립적으로 작업 할 수 있기 때문입니다." – Namratha

+0

또한 addObserver : selector : name : object : selector 매개 변수를 이해하지 못했습니다. 설명 해주십시오. – Namratha

+0

'A'와 'B'두 클래스가 있고 어떤 이벤트가 발생할 때마다 'A'의 객체는 'B'의 객체를 알릴 필요가 있다고 가정 해 봅시다. 알림이 없으면, 우리는'A'의 어떤 메소드에서 직접'B'의 메소드를 직접 호출 할 수 있습니다. 따라서 두 클래스를 모두 묶어서 딱딱한 의존성을 만듭니다. 알림을 사용하면 'A'는 알림 관리자에게 이벤트가 발생했음을 방금 알릴 수 있고 'B'가 * listening *이면 이벤트를 알립니다. 그렇지 않다면, 그 사건은 단지 눈치 채지 않게됩니다. 그러나이 경우 두 클래스를 하나로 묶지 않았습니다. – Anurag

1

notification은 메커니즘 인 입니다. doc에서 알 수 있듯이 "객체는 addObserver : selector : name : object : 또는 addObserverForName : object : queue : usingBlock : methods"를 사용하여 알림 센터 (NSNotification 객체)에 알림 센터에 등록됩니다. 즉, 관심있는 모든 객체는 청취자으로 등록 할 수 있습니다.

+0

내 NSnotificaton 문을 어디에 추가해야합니까? 리스너가되어야하는 함수에 넣어야합니까? – Namratha

+0

@Namratha 참고로 MoviePlayer 샘플 http://developer.apple.com/library/ios/#samplecode/MoviePlayer_iPhone/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007798을 참조하시기 바랍니다. – ohho

관련 문제