2012-05-31 2 views
0

나는 간단한 iPhone 앱을 가지고있다. IBAction 없이는 자체를 제어합니다. 코드의 의심스러운 부분은 이것입니다.iPhone 앱이 자동으로 제어됩니다. 왜?

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:mMoviePlayer]; 

이전 버전이 iOS 4.2보다 이전 버전이므로 앱이 예상대로 작동합니다. 그러나 iOS 4.2 및 다음 버전에서는 선택기 기능이 수정되거나 다른 IBAction없이 호출됩니다. 그래서 왜 불려지나요?

+0

당신이 명확하게 할 수 아이폰 OS 4.2에서 변경된 것입니다? 앱을 실행할 때마다 또는 특정 다른 작업이 수행 된 후에 발생합니까? 그것은 단 한번 부르는가? –

답변

0

코드가 수행하는 작업은 시스템의 알림 센터에 옵저버를 추가하는 것입니다. 따라서 전화가 알림을 받으면 코드는 자동으로 해당 객체로 선택자를 수행합니다.

가능성이 무슨 일인지하면 NSNotificationCenter가 보낸 통지의 유형이 선택이 소위 상황에서

+0

사실 실제로 문제는 MPMoviePlayerController 대신 MPMoviePlayerViewController를 사용해야한다는 것입니다. iOS 4 이후 첫 번째 수업은 더 좋습니다. [link] (http://d.hatena.ne.jp/shunsuk/20100625/1277471366) –

+0

문제가 발견되었습니다. 너무 오래 MPMoviePlayerController였습니다. 해당 shouldautoplay 속성은 기본적으로 TRUE입니다. 그게 영화가 만져지기없이 뛰는 이유입니다. –