Objective-C ---代理和协议 (梳理整理)
2016-05-22 11:36
447 查看
delegate代理 协议protocol
用一个经典的例子来说明好了
对象worker1->Worker类
对象boss1 ->Boss类
协议WorkPro
@protocol workPro 协议,只
涉及到的方法修饰@required(默认,需要去实现,不然报警) @optional(可选,可以不去实现)
-(void)moveBrick; 协议中的方法
@end
Worker类
(.m中)@interface Worker : NSObject<workPro> Worker遵守协议
(.h中)
-(void)moveBrick{
NSLog(@"move brick");
}
Boss类
.m中 需要导入协议
@property (nonatomic,weak)id<workPro> delegate; 声明一个遵守协议内容的代理
下面boss就可以解决搬砖了
Worker *worker1 = [[Worker alloc]init];
Boss *boss1 = [[Boss alloc]init];
boss1.delegate = worker1; 找代理
[boss1.delegate moveBrick];让代理去做事
运行结果 2016-05-22 11:31:09.631 12[1106:75224] move brick
协议中能不能声明成员变量???
答案是可以的;
上面的协议内容中加上
@property (nonatomic,strong)NSString*name;
Worker.m文件中去实现name的get set方法就好了
用一个经典的例子来说明好了
对象worker1->Worker类
对象boss1 ->Boss类
协议WorkPro
@protocol workPro 协议,只
涉及到的方法修饰@required(默认,需要去实现,不然报警) @optional(可选,可以不去实现)
-(void)moveBrick; 协议中的方法
@end
Worker类
(.m中)@interface Worker : NSObject<workPro> Worker遵守协议
(.h中)
-(void)moveBrick{
NSLog(@"move brick");
}
Boss类
.m中 需要导入协议
@property (nonatomic,weak)id<workPro> delegate; 声明一个遵守协议内容的代理
下面boss就可以解决搬砖了
Worker *worker1 = [[Worker alloc]init];
Boss *boss1 = [[Boss alloc]init];
boss1.delegate = worker1; 找代理
[boss1.delegate moveBrick];让代理去做事
运行结果 2016-05-22 11:31:09.631 12[1106:75224] move brick
协议中能不能声明成员变量???
答案是可以的;
上面的协议内容中加上
@property (nonatomic,strong)NSString*name;
Worker.m文件中去实现name的get set方法就好了
相关文章推荐
- Objective-C ---点语法 (梳理整理)
- QObject源码分析
- Programming Scala第4章demo03 单例对象object
- javascript之object
- Objective-C ---点语法 (梳理整理)
- Objective-C ---代理和协议 (梳理整理)
- ObjectC Hook函数的实现与实战
- NSObject的方法说明
- 讲的很详细的一篇关于object equals() & hashCode() 的文章
- 使用cx_freeze工具打包时提示 AttributeError 'module' object has no attribute '_fix_up_module':
- Object Following for UAV(无人机物体跟随)
- iOS多线程之NSThread、NSOperationQueue、NSObject和GCD的区别
- Volley(2)—JsonObjectRequest和ImageRequest
- spring的 object is not an instance of declaring class
- 不管在不在arc下,object对象都有强引用、弱引用之分
- Xcode:duplicate declaration of method 'XXX'
- 重写Object类中的equals方法
- Programming with Objective-C(七)
- Objective-C Coding Style Guidelines
- scala学习13之与trait同名的object对象