IOS 广播机制与 android 广播机制对比

   Android下广播机制的实现机制:

       1.发送   Context的 sendBroadcast实现,传入Intent即可,Intent提供了携带很多基本类型等的方法,如果想传递复杂对象,应该实现Parcelable接口,Parcelable接口提供了对象序列化的一系列方法。

       2.接收   接收主要有两种方法:

       一、在AnroidManifest.xml种注册,需要单独实现一个receiver (继承自BroadcastReceiver ,实现onReceive方      法),这种方法注册的永远有效 

       二、代码注册的方法实现,自定义好IntentFilter,调用Context的registerReceiver的方法,用这种方法实现,需要在当前上下文生命周期方法调用unRegisterReceiver,否则导致内存泄漏。

   iOS下实现类似广播机制是要利用NSNotificationCenter。

     1. 注册(也可以理解为接收)

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onReceive:) name:@"_post" object:obj];

注意在实现onReceive方法时应该传递NSNotification对象,和Intent有一样

-(void)onReceive:(NSNotification *) notification{
    //do your task

   // 通过NSNotification 的各种方法可以取出各种参数


          - (NSString *)name;
          - (id)object;
         - (NSDictionary *)userInfo;

  //
 }

    2.发送     ,其中name是NSNotification的唯一标示,object可以传递各种参数,userInfo 字典类信息

[[NSNotificationCenter defaultCenter] postNotificationName:@"_post"object:obj userInfo:userInfo];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值