zoukankan      html  css  js  c++  java
  • NSNotification --关于通知

    一、

         通知(NSNotification)的发送(Post)和注册(add)都必须借助于通知中心(NSNotificationCenter)

         发送通知:

     NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
        [center postNotificationName:@"通知名字" object:self userInfo:@{@"key":@"object"}];

         发送的通知中:

    1.NotificationName是这则通知的名字,

    2.object通常写self(可以在通知的接受者中提取到这个,实现回调,)

    3.userInfo是一个字典用来存放传输的数据

         注册通知接受者:(第一种方法)

       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(change:) name:@"通知名字" object:nil];

    //接受所有名字是"通知名字"的通知

        注册通知接受着:(第二种方法)

     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(change:) name:nil object:self];

      只接受object:后面带参数的人所发出的通知    

    以下两端是从 http://blog.csdn.net/zhanglei5415/article/details/6454940 摘抄的代码和解释

    - (void)addObserver:(id)anObserver
               selector:(SEL)aSelector
                   name:(NSString *)notificationName
                 object:(id)anObject

    注册anObserver对象:接受名字为notificationName, 发送者为anObject的notification. 当anObject发送名字为notificationName的notification时, 将会调用anObserver的aSelector方法,参数为该notification. 如果notificationName为nil. 那么notification center将anObject发送的所有notification转发给observer
    . 如果anObject为nil.那么notification center将所有名字为notificationName的notification转发给observer

    那么有通知的注册(add),就必须有通知的销毁(remove),下文中很好的提到了销毁时的注意事项等

    http://www.jianshu.com/p/a4d519e4e0d5

  • 相关阅读:
    开源图像标注工具labelme的安装使用及汉化
    win10启动远程桌面连接的设置
    maven 仓库搜索添加需要的jar包
    mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
    在Myeclipse中配置Maven
    JSP过滤器Filter配置过滤类型汇总
    js中location.href的用法
    session失效后跳转到登陆页面
    JS的三种弹框
    JOptionPane.showMessageDialog出现在浏览器下面的解决方法
  • 原文地址:https://www.cnblogs.com/naizui/p/5263330.html
Copyright © 2011-2022 走看看