天天看点

ios协议和委托

在iPhone开发协议和委托是常接触到的东西,到底什么是协议什么是委托,他们什么关系?

一 协议

(1)协议相当于没有与类相关联的接口,他申明一组方法,列出他的参数和返回值,共享给其他类使用,然后不进行实现,让用它的类来实现这些方法

(2)在任何一个类中,只有声明了协议,都可以实现协议里的方法。

(3)协议不是一个类,更没有父类了。

(3)协议里面的方法经常都是一些委托方法,

二 委托

委托,故名思议就是托别人办事。打个比方:

张三迫切需要一分工作,但是不知道去哪找。于是他就拜托(委托)李四给帮找一份合适工作,但是托人办事得给被人好处啊,于是张三给李四塞了一个红包(协议),于是李四通过自己关系在某公司找了一份文秘的工作(实现协议里面委托方法),于然后他把文秘这份工作给了张三,张三就找到工作了;

三 我们来看一个比较常用的表格单元实现委托和协议

UITableViewDataSource协议和他的委托方法

这是一个完整协议定义

@protocol  协议名

声明方法

@end

但是我们还看到两个特殊关键字 @required  和 @optional

@required 表示我们用到这个协议的时候必须实现这个协议的方法

@optional 表示我们可选择性实现这些方法,看那个需要我们就去实现,不需要的就不实现

UITableViewDelegate协议和委托方法

在用的时候,我们现在声明协议

实现UITableViewDataSource  UITableViewDelegate协议里面的委托方法

这就就是实现一些里面的委托方法过程运行改程序运行结果

     本文转自新风作浪 51CTO博客,原文链接:http://blog.51cto.com/duxinfeng/1208715,如需转载请自行联系原作者