NSNotification(消息机制)
来源:互联网 发布:麒麟linux操作系统下载 编辑:程序博客网 时间:2024/06/05 04:26
对象之间进行通信最基本的方式就是消息传递,在Cocoa中提供Notification Center机制来完成这一任务。其主要作用就是负责在任意两个对象之间进行通信。使用方法很简单,如下几个步骤即可:
假设A与B之间进行通信,B来触发事件,A接受该事件,并作出响应。
1) A编写自定义的消息响应函数update
2) A向消息中心注册,[NSNotificationCenter defaultCenter] addObserver: self selector:@selector(update) name:@"update" object:nil]
3) B触发事件[[NSNotificationCenter defaultCenter] postNotificationName:@"update" object:nil]
每一个进程都有一个默认的 NSNotificationCenter,可以通过类方法defaultCenter获取该消息中心的实例。消息中心可以处理同一进程中不同对象之间的消息。如果要在同一台机器上进行进程间的通信,需要使用NSDistributedNotificationCenter。
消息中心以同步的方式将消息分发到所有的观察者中,换言之,直到所有的观察者都收到消息并处理完毕以后,控制权才会回到调用者的手里。如果需要异步的处理消息,需要使用通知队列NSNotificationQueue。
在多线程程序中,通知会被分发到每一个发起消息的线程中,这可能与观察者注册时所在的线程已经不是同一线程。NSString *const GameToIPhoneNotification = @"GameToIPhoneNotification"; GameToIPhoneNotification变量,@"GameToIPhoneNotification"这个值存于通知中心中,信息中心通过这个值来识别变量
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self selector:@selector(onToIphone:) name:GameToIPhoneNotification object:nil];
-(void)onToIphone:(NSNotification*)notify :这个方法是接受到GameToIPhoneNotification这个通知所调用的方法
2.调用信息
NSNotificationCenter * center = [NSNotificationCenter defaultCenter];
[center postNotificationName:GameToIPhoneNotification object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:SMSRecommendNotification] , @"actcode",nil]];
[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:SMSRecommendNotification] 这个是传递给-(void)onToIphone:(NSNotification*)notify 的参数。
- NSNotification(消息机制)
- NSNotification消息通信机制
- 通知机制(NSNotification)
- IOS通知机制(NSNotification)
- OC 面试中的消息机制:KVO,NSNotification,Delegate,Protocol
- iOS 消息通知-NSNotification
- 199,消息通知NSNotification
- iOS NSNotification 通知机制
- NSNotification调用机制
- (七十二)自定义通知NSNotification实现消息传递
- NSNotification 通知接收不到消息
- [消息传递之一]-NSNotification练习
- Runtime(消息机制)
- NSNotification (通知)
- ios -- NSNotification(通知)
- NSNotification
- NSNotification
- NSNotification
- Class.this 和 this 的有什么不同
- uva 10099 - The Tourist Guide(最小生成树)
- tomcat多域名配置
- 面试之BI-SQL--table转换[2]
- 关于jquery命名的冲突问题
- NSNotification(消息机制)
- 算法竞赛入门经典第二章练习
- 基于XML数据库的学生信息管理系统的设计与实现
- 用Spring Data JPA 基于内存存储pojo的简单案例
- IOS仿网易新闻客户端左右侧栏
- 【Cocos2d游戏开发之一】搭建cocos2d游戏引擎环境
- mysql常用语句
- 仿微信启动界面
- 6句话,绝对不能对上司说!