2013-11-14 1 views
0

IPhone의 현재 볼륨을 얻기 위해 NSNotification 센터를 사용했습니다. 예 : [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeChanged:) name:MPMusicPlayerControllerVolumeDidChangeNotification object:musicPlayer]; 내 코드에서는 게시물 게시 알림을 사용하지 않았지만 volumeChanged 메소드가 호출되었습니다. 그래서 게시 통보의 사용 및 사용 방법은 무엇입니까?ios에서 포스트 NSNotification을 사용하는 것은 무엇입니까?

+0

http://stackoverflow.com/questions/2676398/how-to-post-and-receive-an-notification – JSA986

답변

0

알림을 구독 중이므로 (보낼 필요가 없음) 아마도 MPMusicPlayerController은 알림을 보내는 클래스/인스턴스입니다.

알림 작동 방식에 대한 자세한 내용은 here을 참조하십시오.

1

많은 알림은 iOS에서 자동으로 생성되며 사용자는이를 관찰하고 그에 따라 대응할 수 있습니다. 이는 정확하게 볼륨 변경 알림 수신을 통해 수행 한 것입니다.

자신 만의 메시지를 알림 센터에 게시 할 수 있으며 코드의 다른 부분이 응답 할 수 있습니다.

는 메소드 내에서이 같은 것을 호출 할 수 있습니다 :

[[NSNotificationCenter defaultCenter] postNotificationName:@"com.ryan.cumley.updatedData" object:nil]; 

당신은 당신이 원하는 알림 이름을 지정할 수 있습니다, 당신은 com.xxx.xxx.whatever 표기법을 사용하여 충돌을 방지 할 수 있지만.

이제이 알림 이름의 옵저버로 이전에 추가 된 앱에 현재 존재하는 모든 객체가이 메시지를 받고 선택기를 시작합니다.

이 디자인 패턴은 서로 명확한 참조를 유지하지 않고도 멀리있는 물체간에 메시지를 전달할 때 특히 유용합니다. 게다가, 많은 다른 물체들이 동시에 관찰 할 수 있습니다. 단지 1-1의 메시지가 아닙니다.

object: 인수를 사용하여 알림이있는 항목을 전달할 수도 있습니다.

관련 문제