ios-通知中心基础

来源:互联网 发布:集思宝a5测量软件 编辑:程序博客网 时间:2024/05/17 12:57

这里仅仅是记录下通知中心的基础,方便以后查看。

//.m文件#import <Foundation/Foundation.h>#import "BroadCast.h"#import "Listener.h"int main(int argc, const char * argv[]) {    @autoreleasepool {        Listener *listen=[[Listener alloc]init];        [listen receiveBroadCast];        BroadCast *broad=[[BroadCast alloc]init];        [broad SendMessagerepeat];        [[NSRunLoop currentRunLoop]run];//不加这句程序直接结束    }    return 0;}
//BroadCast.h文件#import <Foundation/Foundation.h>@interface BroadCast : NSObject-(void)SendMessagerepeat;-(void)SendMessage;@end
//BroadCast.m文件#import "BroadCast.h"@implementation BroadCast-(void)SendMessagerepeat{    [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(SendMessage) userInfo:nil repeats:YES];    //用定时器来发送广播}-(void)SendMessage{    NSNotificationCenter *center=[NSNotificationCenter defaultCenter];//取得通知中心    NSDictionary *pram=@{@"user1":@"1",@"user2":@"2"};//广播内容    [center postNotificationName:@"FM81.5" object:self userInfo:pram];    //参数一:广播的名字 参数二从哪个对象发过来的 参数三就是附带的参数}@end
//Listener.h文件#import <Foundation/Foundation.h>@interface Listener : NSObject-(void)receiveBroadCast;-(void)receive:(NSNotification *)notice;@end
//Listener.m文件#import "Listener.h"@implementation Listener-(void)receiveBroadCast{    //注册广播中心    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(receive:) name:@"FM81.5" object:nil];    //只要有FM81.5这个广播我们就调用self的receive:方法 object应该是具体的广播站,我们这里设置为nil代表只要是这个广播我们就可以听。    //addObserver: 观察者,即在什么地方接收通知; selector: 收到通知后调用何种方法; name: 通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的}-(void)receive:(NSNotification *)notice{   //收到广播后的输出方法    NSLog(@"%@",notice.userInfo);}@end