"// 定义代理协议\n@protocol MyDelegate \n- (void)doSomethingWithParam1:(NSString *)param1 param2:(NSInteger)param2;\n@end\n\n// 定义代理类\n@interface MyDelegateClass : NSObject\n@property (nonatomic, weak) id delegate;\n- (void)performTask;\n@end\n\n@implementation MyDelegateClass\n- (void)performTask {\n // 执行任务\n NSString *param1 = "Hello";\n NSInteger param2 = 123;\n [self.delegate doSomethingWithParam1:param1 param2:param2];\n}\n@end\n\n// 使用代理类\n@interface ViewController : UIViewController\n@end\n\n@implementation ViewController\n- (void)viewDidLoad {\n [super viewDidLoad];\n \n MyDelegateClass *delegateClass = [[MyDelegateClass alloc] init];\n delegateClass.delegate = self;\n [delegateClass performTask];\n}\n\n- (void)doSomethingWithParam1:(NSString *)param1 param2:(NSInteger)param2 {\n // 处理传入的参数\n NSLog(@"param1: %@, param2: %ld", param1, (long)param2);\n}\n@end\n\n在上述代码中,首先定义了一个代理协议MyDelegate,其中声明了一个带有两个参数的方法doSomethingWithParam1:param2:。\n\n然后定义了一个代理类MyDelegateClass,其中有一个属性delegate用于存储代理对象,并在执行任务时调用代理对象的方法。\n\n接下来,在使用代理的类ViewController中遵循MyDelegate协议,并实现了该协议中的方法doSomethingWithParam1:param2:。在viewDidLoad方法中创建了代理类的实例,并将自身设置为代理对象,然后调用代理类的performTask方法。\n\n最后,在doSomethingWithParam1:param2:方法中处理传入的参数。\n

iOS 开发:使用代理传递两个参数的示例(Objective-C)

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

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