如何在以下场景中使用NSNotification(IPhone SDK)?

时间:2011-04-29 12:29:48

标签: iphone nsnotification

考虑到现实生活情况,假设我已经为3个人分配了一些工作(比如人员A,人员B,人员C),而不是等待他们分别完成任务,我希望每个人完成所有分配的任务时,他/她会清楚地通知我。这样我就可以根据他/她的任务做出进一步的决定。

我想在代码中实现这种情况,不使用单独的线程和委托,我的意思是使用NSNotification。

如何使用编程来完成这些工作,您可以使用代码解决上述情况(iPhone SDK-Objective C)吗?

2 个答案:

答案 0 :(得分:1)

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayer.moviePlayer];


- (void)myMovieFinishedCallback:(NSNotification*)aNotification
{    
    // Release the movie instance created in playMovieAtURL

    MPMoviePlayerController *theMovie = [aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:theMovie];
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:UIDeviceOrientationDidChangeNotification
                                                  object:theMovie]; 

    [theMovie stop];
    [theMovie.view removeFromSuperview];

} 

像这样你可以使用NSNotification。希望你明白。

答案 1 :(得分:1)

只要您不使用单独的线程(或某种模拟的异步性),3个人就需要彼此等待并且使用通知并不真正有意义。