iOS 中只用通知传值

**NSNotificationCenter**

iOS 传值有多重实现方式,这里先介绍一种传值方式就是通知中心,它与代理传值最大的不同是不需要两个引用的对象,通知可以实现更大跨度的通信
通知中心在程序中以单例的形式存在,对象的声明为

[NSNotificationCenter defaultCenter]

首先要声明消息的发送

[[NSNotificationCenter defaultCenter] postNotificationName:@"notion" object:id userInfo:@{}]

object可以发送任意类型数据
userinfo发送的数据类型只能为NSDictionary。

实现消息的接收

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notionGetBack:) name:@"notion" object:nil];

addObserver为观察者
selector接收通知需要实现的方法
name为收到的是哪个通知

实现接收方法

- (void)notionGetBack:(NSNotification *)notion
{

}

当然还有一种方法,这种方法虽说在iOS4.0的时候已经退出,但是网上很少有人写出。如果经常翻阅头文件的话就会发现。它与之前最大的不同就是增加了线程,以及省略了回调方法,用block进行的代替,简化了代码,提高代码的紧凑型

[[NSNotificationCenter defaultCenter] addObserverForName:@"notion" object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notion){

            NSLog(@"%@", notion.object);
            NSLog(@"%@", notion.userInfo);
        }]

移除通知
当不需要通知的时候记得要移除通知

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"notion" object:nil]

总结:
通知平常使用的知识点差不多就这么多。希望对大家有帮助。最后,代码一定要养成良好的习惯,该移除的还是要移除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值