iOS 开发:使用代理模式实现对象间通信的示例
以下是一个简单的 OC 代码示例,展示了如何创建并使用代理:
// 定义代理协议
@protocol MyDelegate
- (void)didFinishTask; @end
// 创建类 A
@interface ClassA : NSObject
@property (nonatomic, weak) id
- (void)startTask; @end
@implementation ClassA
- (void)startTask { // 做一些任务 // 任务完成后通知代理 if (self.delegate && [self.delegate respondsToSelector:@selector(didFinishTask)]) { [self.delegate didFinishTask]; } } @end
// 创建类 B,并实现代理协议
@interface ClassB : NSObject
@implementation ClassB
- (void)didFinishTask { NSLog('任务完成'); } @end
// 在某个地方使用 ClassA *classA = [[ClassA alloc] init]; ClassB *classB = [[ClassB alloc] init]; classA.delegate = classB; [classA startTask];
在这个示例中,我们首先定义了一个 MyDelegate 协议,其中只有一个 didFinishTask 方法。然后我们创建了一个 ClassA 类,其中有一个 delegate 属性,用来保存代理对象。在 ClassA 的 startTask 方法中,当任务完成后,会通过代理通知任务完成。然后我们创建了一个 ClassB 类,并实现了 MyDelegate 协议中的 didFinishTask 方法。最后在某个地方,我们创建了 ClassA 和 ClassB 的实例,并将 ClassB 对象设置为 ClassA 的代理。当 ClassA 的任务完成后,会调用代理对象的 didFinishTask 方法,在这个例子中,会打印出'任务完成'。
原文地址: https://www.cveoy.top/t/topic/phEQ 著作权归作者所有。请勿转载和采集!