ios 动态代理

Miette ·
更新时间:2024-11-13
· 999 次阅读

代理原理(自己的见解,下面的看不懂的读一读这三句话,再看) 拿到代理自己的类的引用, 并让它实现自己要调用的方法, 通过这个类的引用去调用被它实现的方法(编译器自己执行方法选择器) 代理声明格式 @protocol TestDelegate -(void) logStr:(NSString *) str; ///这里写一些方法接口 @end 使用代理 @interface XMRotationChartView : UIView ///类的接口定义代理的属性,给外界赋值 @property (nonatomic, assign) id delegate; @end @implementation XMRotationChartView -(void) test{ [self.delegate logStr:@"Hello"]; } 使用代理方法的例子 ///监听代理 [self addObserver:self forKeyPath:@"delegate" options:NSKeyValueObservingOptionNew context:nil]; - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ ///代理成功 if ([@"delegate"isEqualToString:keyPath]) { if (_delegate != nil) { NSlog(@"代理成功"); [self.delegate logStr:@"Hello"]; }else{ NSlog(@"代理被取消了"); } } }
作者:zyw658000



代理 动态代理 IOS 动态

需要 登录 后方可回复, 如果你还没有账号请 注册新账号