zoukankan      html  css  js  c++  java
  • NSNotificationCenter

    新建一个继承于UIViewControll的类,并在.m中添加如下代码

    -(void)doSomeThing:(NSNotification *)aNote
    {
    NSDictionary *dict = [aNote object];
    NSLog(@"%@",dict);
    }
    - (void)loadView
    {
    [super loadView];
    NSString *myString = @"some Value";
    NSDictionary *myDict = [[NSDictionary alloc]initWithObjectsAndKeys:myString,@"first", nil];
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(doSomeThing:) name:@"notification" object:nil];

    [[NSNotificationCenter defaultCenter]postNotificationName:@"notification" object:myDict];

    }

    设置通知:

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

    addObserver 这个是观察者,就是说 在什么地方接收通知;

     selector 这个是收到通知后,调用何种方法;

     name: 这个是通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。

       object:  对象,当设定为nil时,默认为所有名称为以上消息名称的(notification)都接收不管发送者是谁。

    发送通知:

    [[NSNotificationCenter defaultCenter]postNotificationName:@"notification" object:myDict];

    postNotificationName:通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。

    object:对象,当设定为nil时,默认为所有名称为以上消息名称的(notification)都发送。

    小例子仅仅是在一个类下的通知,实际来说通知更多的应用于不同的类之间传递信息。

  • 相关阅读:
    JavaScript 中的面向对象编程
    LINUX --- echo修改GPIO状态
    Ubuntu安装海思SDK(转)
    一个C++版本的Sqlite3封装--SmartDb
    分享一个内网穿透工具frp
    opencv图片缩放与镜像
    和菜鸟一起学linux之DBUS基础学习记录(转)
    谈谈嵌入式系统中多进程设计与进程通信
    高效c/c++日志工具zlog使用介绍
    udevd启动失败问题
  • 原文地址:https://www.cnblogs.com/superhappy/p/2333177.html
Copyright © 2011-2022 走看看