首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

iPhone开发中的署理与协议(Delegate and Protocol)

2012-07-15 
iPhone开发中的代理与协议(Delegate and Protocol)我们可以通过发送消息给对象出发特定动作,但对象发送某

iPhone开发中的代理与协议(Delegate and Protocol)
我们可以通过发送消息给对象出发特定动作,但对象发送某些变化的时候用什么方法通知我们呢?对的,通过回调函数(callback)。对象在特定事件发生的时候,就会调用对应的回调函数,触发业务逻辑。

在iPhone的开发框架中,回调函数通过所谓的代理(Delegation)来实现,举例说明:每个UITextView对象都有一个delegate属性,该属性指向一个特定的对象,所谓特定指的是该对象遵从特定的协议(Protocol),这个与Java中的Interface应该是同一概念,指的是预定义方法的集合,如:

@protocol UITextViewDelegate@optional-(BOOL) textViewShouldBeginEditing: (UITextView *)text View;-(BOOL) textView:(UITextView *)text View               shouldChangeTextInRange:(NSRange) range               raplacementText:(NSString *)text;-(void) textViewDidChange:(UITextView *)textView;@end


单对象的特定事件触发的时候,对象就会调用delegate指向对象对应的协议方法。在苹果的开发文档中,每个协议都有单独的页面列出所有的方法和参数。

热点排行