关于代理的问题

关于代理的问题

为什么不直接创建一个代理文件协议,然后让BClass 实现这个协议呢,不理解这一节课的主要思想

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

那个AClass就是去定义一个协议,并且实现买票的方法,那么HClass肯定要想买票的话,肯定首先得遵守协议,然后才能去买票。buyTicket这个方法只是为了告诉你,我是黄牛我通过这个协议买票成功了,你看这个方法里只是实现了一个简单的打印,或者你可以将那个方法名字改成buyTicketSuccess,就是买票成功之后的一个反馈信息,这样就很清楚了。

提问者 慕虎2203750 2017-03-08 09:59:50

视频中的代码,既然已经定义了一个协议 ,为什么直接实现协议不就行了吗,为什么先要搞个ACLass,然后在搞个HCLass,然后用在HClass的-(void)testDelegate中 ACLass * ac = [[ACLass alloc]init];  ac.Delegate = self;

#import <Foundation/Foundation.h>

@protocol BuyTicketDelegate;

@interface AClass : NSObject

@property (nonatomic,weak)id<BuyTicketDelegate>Delegate;

-(void)myBuyticket;

@end

@protocol BuyTicketDelegate <NSObject>

@optional

-(void)buyTicket;

@end

——————————————————————————————————————————————

#import <Foundation/Foundation.h>

#import "AClass.h"

@interface HClass : NSObject<BuyTicketDelegate>

-(void)testDelegate;

-(void)buyTicket;


@end



Tender10 2017-03-08 09:20:29

协议是一个方法列表,在其中可以定义若干个方法,遵守该协议的类会去实现这个协议中规定的若干个方法。如果现在我有一个类想去做一件事,刚好这个协议中有可以帮我解决事情的方法,那我就可以不用自己去做,直接让这个协议中的方法代理我去做。如果其他类中也想去做另外一件事,刚好协议中也有这个方法,那么我也可以让这个协议代理我去解决这件事情。

  • 提问者 慕虎2203750 #1
    视频中的代码,既然已经定义了一个协议 ,为什么直接实现协议不就行了吗,为什么先要搞个ACLass,然后在搞个HCLass,然后用在HClass的-(void)testDelegate中 ACLass * ac = [[ACLass alloc]init]; ac.Delegate = self;委托给hclass?然后自身还是要实现一个方法去调用-(void)buyTicket;
    2017-03-08 10:03:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师