NSNotification通知的使用
来源:互联网 发布:部队网络安全管理 编辑:程序博客网 时间:2024/05/21 17:53
第一、通知中心,通知中心有两种方法,一种是发布通知,一种是订阅通知,必须先订阅通知,
再发布通知
NSNotificationCenter *center =[NSNotificationCenter
defaultCenter];
第二、订阅通知
JSPerson *mj = [[JSPerson alloc] init];
mj.name = @"lmj";
JSPerson *nj = [[JSPerson alloc] init];
nj.name = @"lnj";
//必须现有订阅者
//observer 通知的订阅者
//aSelector 接收到通知后做的事情
//aName 要接收的通知的名称,如果为nil 则接收所有
通知
//anObject 发布者,接收谁发布的通知,如果为nil接收
所有人发布的通知
[center addObserver:mj selector:
@selector(niuNaiComing:)name:@"mainiumaile" object:nil];
第三、发布通知
//现有订阅者,再发布通知
//发布通知 sanyuan 通知的发布者
[centerpostNotificationName:@"mainiumaile"
object:sanyuanuserInfo:@{@"tx":@"好牛奶在三元"}];
[centerpostNotificationName:@"mainiumaile"
object:sanluuserInfo:@{@"tx":@"毒牛奶在三鹿"}];
//noti.object 通知的发布者
//noti.userInfo 发送者给接受者发送的信息
//noti.name 通知的名称
- (void)niuNaiComing:(NSNotification *)noti
{
//noti.name; //收到的通知的名称
JSCompany *com = noti.object; //通知的发布者
NSLog(@"%@",com.name);
//noti.userInfo; //发布通知的时候发送的额外信息
userInfo:
//NSLog(@"%@",noti);
NSLog(@"%@",noti.userInfo[@"tx"]);
}
第四、在通知的接收者中处理通知的消息
A09-通知机制
2014年10月17日 星期五 16:30
分区 第八天(QQ聊天) 的第 11 页
}
- (void)dealloc
//在arc中不能,也不用调用[superdealloc];
{
/在监听者的dealloc方法中,
//取消订阅
//必须取消监听,否则,当通知再次出现,通知中心任然回向该监
听者发送消息
//因为对象已经释放,所以可能会导致崩溃
[[NSNotificationCenter defaultCenter]
removeObserver:self];
}
第五、当订阅者销毁,也要取消订阅通知,否则可能会出现野指针错误;
代理和通知都能完成对象之间的通信(A对象告诉B对象发生了什么,A对象传递数
据给B对象)
第六、通知和代理的区别
(1)、相同点
代理: 1对1( 1个对象,只能告诉另一个对象发生了什么)
通知:多对多( 1个对象可以通知多个对象, 1个对象可以订阅多个对象发布的通
知)
- NSNotification通知的使用
- NSNotification通知的使用
- iOS NSNotification 通知的使用
- NSNotification通知类的使用
- ios NSNotification通知的使用
- iOS NSNotification的使用 通知
- 通知(NSNotification)类的使用
- 关于NSNotification通知的使用
- iOS NSNotification(通知)的使用
- iOS 通知的使用NSNotification的使用
- IOS NSNotification Center 通知中心的使用
- iOS通知NSNotification传值的使用
- 【iOS系列】- 通知NSNotification的使用
- swift使用通知NSNotification
- cocoa的NSNotification通知
- cocoa的NSNotification通知
- iOS 通知NSNotification 使用详解
- iOS NSNotification 通知的用法
- Android自定义控件——自定义属性
- Android的对称加密与Base64加密
- Android的非对称加密与MD5加密
- [Android] View 的三种自定义方式:扩展,组合,重写
- 实现Activity跳转动画的五种方式
- NSNotification通知的使用
- Material Design控件使用(一)
- Material Design控件使用(二)
- 如何使用Git从Github中下载代码
- RecyclerView 下拉刷新上拉加载更多
- 待添加,Android扫描二维码,拍照 录像
- Android图片加载框架——Fresco
- Android图片加载框架——Picasso和Glide
- Android图片加载框架——UniversalImageLoader