以下是一个简单的 OC 代码示例,展示了如何创建并使用代理:

// 定义代理协议 @protocol MyDelegate

  • (void)didFinishTask; @end

// 创建类 A @interface ClassA : NSObject @property (nonatomic, weak) id delegate;

  • (void)startTask; @end

@implementation ClassA

  • (void)startTask { // 做一些任务 // 任务完成后通知代理 if (self.delegate && [self.delegate respondsToSelector:@selector(didFinishTask)]) { [self.delegate didFinishTask]; } } @end

// 创建类 B,并实现代理协议 @interface ClassB : NSObject @end

@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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录