码迷,mamicode.com
首页 > 其他好文 > 详细

Objective-C释解 Target-Action模式

时间:2014-12-11 13:42:10      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   color   sp   on   div   art   bs   

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])];

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

 

Objective-C释解 Target-Action模式

标签:style   io   ar   color   sp   on   div   art   bs   

原文地址:http://www.cnblogs.com/iOS-mt/p/4157238.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!