自定义通知 NSNotification

自定义通知的一般步骤:

1.注册监听者

2.创建并发送通知

3.移除监听者

创建一个King ,Worker ,Farmer类,有King发送一个自定义通知,Worker和Farmer类监听通知,通知内容"给老百姓发福利,涨工资"

#import <Foundation/Foundation.h>

@interface King : NSObject

-(void)sendMessage;//创建并发送通知

@end
#import "King.h"

@implementation King
//创建并发送通知,通知的名字是 "MESSAGE"
-(void)sendMessage
{
    //创建并发送通知
    [[NSNotificationCenter defaultCenter] postNotificationName: @"MESSAGE" object:self userInfo:@{@"order":@"给来百姓发福利,涨工资"}];
}

#import <Foundation/Foundation.h>

@interface Worker : NSObject

@end


#import "Worker.h"

@implementation Worker

-(id)init
{
    if (self = [super init])
    {
        //注册监听者
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(say:) name:@"MESSAGE" object:nil];
        
    }
    return self;
}
//接收通知要做的事情
-(void)say:(NSNotification *)notificotion
{
    NSDictionary *dictionary = notificotion.userInfo;
    NSLog(@"工人说%@",dictionary[@"order"]);//注意:dictionary[@"order"]
}

//移除通知
-(void)dealloc
{
    [[NSNotificationCenter defaultCenter ] removeObserver:self name:@"MESSAGE" object:nil];
}

@end

#import <Foundation/Foundation.h>

@interface Farmer : NSObject

@end

#import "Farmer.h"

@implementation Farmer

-(id)init
{
    
    //注册监听者
    if (self = [super init])
    {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(say:) name:@"MESSAGE" object:nil];
        
    }
    return self;
}

-(void)say:(NSNotification *)notification
{
    NSDictionary *dictionary = notification.userInfo;
    NSLog(@"农民说%@",dictionary[@"order"]);
}
-(void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"MSEEAGE" object:nil];
}
@end

#import "ViewController.h"
#import "King.h"
#import "Worker.h"
#import "Farmer.h"
@interface ViewController ()
{
    Worker *worker;
    Farmer *farmer;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    King *king = [King new];
    worker = [Worker new];
    farmer = [Farmer new];
    [king sendMessage];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

//打印结果:
2015-12-20 11:30:02.803 copy-oc-08-03-01[1101:43851] 工人说给来百姓发福利,涨工资
2015-12-20 11:30:02.804 copy-oc-08-03-01[1101:43851] 农民说给来百姓发福利,涨工资


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值