OC代码如下:

// 定义代理协议
@protocol MyDelegate <NSObject>
- (void)doSomethingWithParam1:(NSString *)param1 param2:(NSInteger)param2;
@end

// 定义代理类
@interface MyDelegateClass : NSObject
@property (nonatomic, weak) id<MyDelegate> delegate;
- (void)performTask;
@end

@implementation MyDelegateClass
- (void)performTask {
    // 执行任务
    NSString *param1 = @"Hello";
    NSInteger param2 = 123;
    [self.delegate doSomethingWithParam1:param1 param2:param2];
}
@end

// 使用代理类
@interface ViewController : UIViewController<MyDelegate>
@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    
    MyDelegateClass *delegateClass = [[MyDelegateClass alloc] init];
    delegateClass.delegate = self;
    [delegateClass performTask];
}

- (void)doSomethingWithParam1:(NSString *)param1 param2:(NSInteger)param2 {
    // 处理传入的参数
    NSLog(@"param1: %@, param2: %ld", param1, (long)param2);
}
@end

在上述代码中,首先定义了一个代理协议MyDelegate,其中声明了一个带有两个参数的方法doSomethingWithParam1:param2:

然后定义了一个代理类MyDelegateClass,其中有一个属性delegate用于存储代理对象,并在执行任务时调用代理对象的方法。

接下来,在使用代理的类ViewController中遵循MyDelegate协议,并实现了该协议中的方法doSomethingWithParam1:param2:。在viewDidLoad方法中创建了代理类的实例,并将自身设置为代理对象,然后调用代理类的performTask方法。

最后,在doSomethingWithParam1:param2:方法中处理传入的参数

iOS开发 写一个代理带两个参数 oc代码

原文地址: http://www.cveoy.top/t/topic/iRcI 著作权归作者所有。请勿转载和采集!

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