在iphone sdk中的NSNotification

时间:2010-08-11 07:36:37

标签: iphone

iphone sdk中 NSNotification 的用途是什么?

由于

5 个答案:

答案 0 :(得分:3)

我知道这通常不是回答问题的好方法,但是RTFM

  

NSNotification对象封装信息,以便可以通过NSNotificationCenter对象将其广播到其他对象。 NSNotification对象(称为通知)包含名称,对象和可选字典。该名称是标识通知的标记。对象是通知的海报想要发送给该通知的观察者的任何对象(通常,它是发布通知的对象)。字典存储其他相关对象(如果有)。 NSNotification对象是不可变对象。

     

您可以使用类方法notificationWithName:object:或notificationWithName:object:userInfo:创建通知对象。但是,您通常不会直接创建自己的通知。 NSNotificationCenter方法postNotificationName:object:和postNotificationName:object:userInfo:允许您方便地发布通知而不先创建通知。

答案 1 :(得分:1)

NSNotifications允许您在事件发生时调用方法。 例如,如果你有一个MPMoviePlayer并且想要完成某些事情,你可以使用以下代码:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:yourMoviePlayer.moviePlayer];

或者如果您想在设备旋转时执行某些操作:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:self];

答案 2 :(得分:0)

你应该看一下Notifications section in the Cocoa Fundamentals Guide。您需要了解有关通知的任何信息:从定义到用例。

答案 3 :(得分:0)

就事件而言,NSNotifications是授权的替代方案。委派可用于通知事件的单个代表,而通知可用于通知任意数量的接收者。通知将发送到主通知中心,主通知中心会通知已注册通知的每个对象。

一个重要的区别是,通过委托,您可以收到代表对事件的响应,而使用NSNotifications,您只需发送通知,但您不知道接收者或他们对通知的响应。

答案 4 :(得分:0)

如果您想从iOS接收提醒,请注册UINotification。因此,如果您想在插入配件或插入电视时执行某些操作,则可以为其注册UINotification,并在事件发生时调用应用中的方法。