当发生了某事的时候,向相关应用程序广播通知通常会有所帮助。例如,当用户按下home键的时候,默认情况下只有应用程序委托会收到一条通知。但是,应用程序中的对象可能也希望获知类似的事件。 这时候就要用到NSNotification类,它一个对象向其他任意对象发送的广播消息,这些其他对象已经提前注册了要获得这些通知。通知由NSNotification管理,是一个管理通知发送的单一对象。 要注册通知的代码:
let notificationCenter = NSNotificationCenter.defaultCenter()
let operationQueue = NSOperationQueue.mainQueue()
// 注册申请通知UIApplicationDidEnterBackgroundNotification
let applicationDidEnterBackgroundObserver = notificationCenter.addObserverForName(UIApplicationDidEnterBackgroundNotification,object: nil,queue: operationQueue) {
(notification:NSNotification!) in
print("hello")
}
// 取消对通知的注册
notificationCenter.removeObserver(applicationDidEnterBackgroundObserver)
注意:如果没有取消对通知的注册,会留下孤悬通知处理器,这可能会导致内存浪费的,甚至会使得程序崩溃(哇啊啊)。因此一定要记得取消对通知处理器的注册。 还可以张贴自己的通知:
let myNotification = "myNotificationType"
notificationCenter.postNotificationName(myNotification,object:nil)
通知类型实际上就是字符串啦
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。