iOS开发 写一个代理带两个参数 oc代码
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:方法中处理传入的参数
原文地址: http://www.cveoy.top/t/topic/iRcI 著作权归作者所有。请勿转载和采集!