2014-02-14 6 views
4

내 프로젝트에 MPMoviePlayer을 사용하고 있습니다. 나는 영화 플레이어 종료 통지에 등록했으며 잘 작동하고 있습니다. 영화 플레이어 오류에 대한 알림을받을 때마다 오류 경고를 표시하고 있습니다. 그러나 문제는 오류 경고가 여러 번 표시된다는 것입니다. 동일한 오류에 대해 둘 이상의 알림이 수신되고 동시에 너무 많은 알림이 수신되기 때문에 발생합니다. 부울 변수를 사용하여 경고 표시를 제어하려고 시도했지만 알림이 동시에 수신 되었기 때문에 작동하지 않습니다. 어떤 접근 방식을 적용해야합니까? 알림 방법에 대한 나의 코드 : 등록 통지를여러 번 호출되는 메서드

MPMovieFinishReason reason = [[[notification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] intValue]; 
NSError *errorMsg = [[notification userInfo] valueForKey:@"error"]; 
NSString *errmsg = [errorMsg localizedDescription]; 
if (reason == 1 && !errorReceived){ 
    NSError *errorMsg = [[notification userInfo] valueForKey:@"error"]; 
    NSString *errmsg = [errorMsg localizedDescription]; 
    [self showErrorAlert]; 
} 

: 오류를 일단 관찰자를 제거하기위한

NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; 
[center addObserver:self selector:@selector(moviePlayerDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.player]; 

, viewWillDisappear

[[NSNotificationCenter defaultCenter]removeObserver:self]; 
+0

알림을 등록하는 중임을 확인 했습니까? 적절한 경우 알림을 등록 취소합니까? – rmaddy

+0

알림을 어떻게 등록하셨습니까? 이 알림이 여러 번 등록 될 가능성이 있습니까? 트리거 한 후 일부 관찰자를 알림에서 삭제하는 것을 잊었을 수도 있습니다. – yoninja

+0

예, 한 번 등록 했으므로 등록을 취소했습니다. – user3308898

답변

0

의 관찰자를 제거

[[NSNotificationCenter defaultCenter] removeObserver : 자기 이름 : MPMoviePlayerPlaybackDidFinishNotification 객체 : player];

클릭하고 재생을 클릭하면 관찰자를 추가하십시오.