委托者模式
委托者模式里面包裹的对象有如下:
(1)协议
(2)委托者
(3)代理
接下来分析他们之间的逻辑和完成的工作任务
协议:定义一个协议(协议定义类的方法,但是不去实现类的方法),接下来定义协议方法 如下:
@protocol UITableViewDataSource<NSObject>
@required
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
@optional
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
@end
协议接下来指定一个委托
委托者:声明一个委托,其实就是协议去指定一个委托,实现的过程如下:
@property (nonatomic, assign) id <UITableViewDataSource> dataSource;
委托者不去实现,指定代理去实现
代理:代理最重要的功能就是间接的实现协议里面类的方法,由委托者来指定
tableView.dataSource=self;所以就实现了UITableViewDataSource协议里面的方法了
总结:协议指定委托,委托设置代理,代理实现协议方法
代理设置自己,设置自己存在的情况一般是:A类和B类,A类里面添加B类(相当于B类是A类的子类),B类要在A类里面实现协议定义的方法,所以B类定义委托为自己,去实现B类里面定义的协议方法
代理设置另外一个类:主要完成任务是传值