zoukankan      html  css  js  c++  java
  • Objective-C释解 Target-Action模式

    Objective-C释解 Target-Action模式

       Target-Action模式是ObjC里非常常见的对象之间方法调用的方式,不过ObjC把方法调用叫做Send Message.

    一帮情况在和UI打交道时候处理各种GUI上的事件会利用到这种模式.相对应的.NET上的处理模式就是delegate/event了. 不过,Target-Action拜C语言所赐,更是灵活很多,编译期没有任何检查,都是运行时的绑定. 看代码

    UIBarButtonItem *saveBtn = [[UIBarButtonItem alloc] initWithTitle:@"Save"style:UIBarButtonItemStyleDone target:self action:@selector(saveRecipe:)];

    一个按钮控件的click事件的实现.  在这里, 按钮被按下以后会调用 target(也就是self)上的saveRecipe方法. 按照objC的习惯来说是当click事件发生以后,会给self对象发送一个message导致self对象上的saveRecipe方法的调用.

    怎么样,很灵活吧?没有任何的预先定义的接口,模板来限制目标调用方法的签名情况.  更灵活的是,这个目标方法名称可以是运行时生成的. 比如

    [button setTarget: self]; 
    [button setAction: NSSelectorFromString([textField stringValue])];

    当然缺点也很明显,没有任何的编译期检查,如果目标对象根本没有对应的方法,也只能等到运行的时候才会发现.

     

  • 相关阅读:
    今年暑假不AC
    Java类的生命周期
    Java反射机制
    Java环境变量的配置及使用
    javaIO流(一)
    ftp服务器测试
    linux下svn使用及查看杀掉进程
    网络配置学习
    网络配置指令
    dos攻击与防御
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4157238.html
Copyright © 2011-2022 走看看