@property协议:
协议就是规定了能干什么事
delegate代理:
代理就是能干协议里面规定的事的人
通俗来讲,比如:我是个教师,主要工作负责上课,布置作业,评改作业,点名。由于事情多,时间太紧,这时候我需要一个助理(delegate)完成以下事情(protocol),评改作业和点名。
协议和代理的作用:
1.传值
2.类A中有类B,类 B中想要调类A中的方法
3.传事件
4.回调
//定义协议
@protocol PersonalProfileDelegate <NSObject>
- (void)getUserImage: (UIImage *)image;
@end
//委托类PersonalProfileViewController.h文件
@interface PersonalProfileViewController : UIViewController
@property (nonatomic, assign) id<PersonalProfileDelegate> delegate;
PersonalProfileViewController.m文件if (self.delegate) {
[self.delegate getUserImage: myView.userImageRight.image];
}
//代理类
PersonalProfileViewController *personalProfile = [[PersonalProfileViewController alloc] init];
personalProfile.delegate = self;
- (void)getUserImage:(UIImage *)image {
changeImage = image;
}
//@optional //可选实现
//@required //必须实现