当前位置: 代码迷 >> Iphone >> iPhone开发中的署理与协议(Delegate and Protocol)
  详细解决方案

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

热度:394   发布时间:2016-04-25 06:34:05.0
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指向对象对应的协议方法。在苹果的开发文档中,每个协议都有单独的页面列出所有的方法和参数。
  相关解决方案