zoukankan      html  css  js  c++  java
  • Cocoa Touch的3种类的交流方式delegate/target/notification

     

    1. Delegate

    在Cocoa Touch类对象运行的周期中,某一个时间点它会去调用一些指定类的指定函数来完成他自身所要完成的功能。这个”指定的类”,就称为这个类的委托类。”指定函数”则是一些在协议(protocal)中完定义的方法。

    比如UITableView,在它的运行周期中,它会调用委托类的一系列函数来完成对自身的初始化工作。我们需要做的,只是指定好它的委托类,并且在委托类中实现UITableView将要调用的委托方法。那我怎么知道UITableView要调用哪些方法呢?其实很简单,它所要调用的方法都定义在了协议类里面。在文档中可以找到,与UITableView相关的协议类的名字也都是以UITableView开头。其中定义的方法就是UITableView在运行周期中所要调用的一些方法。

    2. Target

    继承自UIControl的类,例如UIButton,可以设置当被触发某个事件时,去调用target对象的selector函数。

    [UIButton  addTarget: 目标对象名称  action:函数名称 forControlEvents:事件名称]  

     

    3. Notification

    这种方式允许某个对象向消息中心发送消息,这些消息可能标有一些状态信息。另外一些对象可能会在消息中心监听带有某些状态消息的信息,从而做出相应。

     

    NSNotification *ntf = [NSNotification notificationWithName:@"chgValue" object:self];  
    //声明一个消息,名称为chgValue,发送者是对象本身。  
    NSNotificationCenter *ntfCenter = [NSNotificationCenter defaultCenter];  
    [ntfCenter postNotification:ntf];  
    //获得消息中心的单例,将定义好的消息发送给消息中心。  
    NSNotificationCenter *ntfCenter = [NSNotificationCenter defaultCenter];  
    [ntfCenter addObserver:self selector:@selector(getNtf) name:@"chgValue" object:self];  
    [ntfCenter addObserver:self selector:@selector(getNtf2) name:@"chgValue" object:self];  
    //获得消息中心的单例,将来源是本对象,名称为chgValue的消息分发给本对象的getNtf和getNtf2函数。  
  • 相关阅读:
    Nodejs下载和第一个Nodejs示例
    永久关闭Win10工具栏的TaskbarSearch控件
    对称加密,非对称加密,散列算法,签名算法
    【转】TTL和RS232之间的详细对比
    zlg核心板linux系统中查看系统内存等使用信息
    Power BI后台自动刷新数据报错 The operation was throttled by Power BI Premium because there were too many datasets being processed concurrently.
    剪切板和上传文件内容获取
    CSS, LESS, SCSS, SASS总结
    文字程序
    electron 打包“ERR_ELECTRON_BUILDER_CANNOT_EXECUTE”
  • 原文地址:https://www.cnblogs.com/killiancheung/p/4569695.html
Copyright © 2011-2022 走看看