zoukankan      html  css  js  c++  java
  • 委托  通知中心   监听/观察

    所说的这些都是为了实现对象与对象直接进行通信的手段

    1.委托:就是调用者对象在自己的类实现文件(.m)中调用被调用者的一些方法,但是呢调用者不知道被调用者中究竟有什么方法,于是便引出“协议”, 在调用者中定义一个协议(也就是一组方法列表),然后让被调用者在其实现文件中去相应的实现这一组方法, 且在被调用者当中定义一个变量(delegate),类型是一个实现了该协议的id类型,这样调用者就可以在适当的时候来调用协议中的方法从而实现间接的对被调用者进行了操作      最后,这里所说的调用者对象最终会成为被调用者的成员变量  eg:UITableView的使用

    2.通知中心:一个应用只有一个通知中心,说个用的比较多的类型,其他参考:http://bj007.blog.51cto.com/1701577/417486
          
               发送通知的代码如下:
    1. [[NSNotificationCenter defaultCenter]  
    2.     postNotificationName:@"myNotificationName" 
    3.     object:broadcasterObject]; 

           接收通知的代码如下:

    1. [[NSNotificationCenter defaultCenter]  
    2.     addObserver:listenerObject  
    3.     selector:@selector(receivingMethodOnListener:)  
    4.     name:@"myNotificationName" 
    5.     object:nil];

      A类可以在其中增加接受通知的代码,通知类型由name来决定,只要被执行一次就行,而发送通知的代码需要在另外的类中去执行,每被执行一次,A类就会接受通知一次,进而去执行通知中所指定的函@selector(receivingMethodOnListener:)  从而实现通信

       
  • 相关阅读:
    AtCoder Tenka1 Programmer Beginner Contest 解题报告
    BZOJ4401: 块的计数 思维题
    LOJ#2170. 「POI2011」木棍 Sticks
    LOJ#2632. 「BalticOI 2011 Day1」打开灯泡 Switch the Lamp On
    LuoguP3183 [HAOI2016]食物链 记忆化搜索
    BZOJ2818: Gcd 欧拉函数
    BZOJ3942: [Usaco2015 Feb]Censoring 栈+KMP
    适用于Java的嵌入式脚本语言
    oracle goldengate的两种用法
    手滑把库给删了,跑路前应该做的事。。。
  • 原文地址:https://www.cnblogs.com/cnsec/p/11515863.html
Copyright © 2011-2022 走看看