iOS 开发:使用代理传递多个参数的 Objective-C 代码示例
以下是一个示例的 Objective-C 代码,演示了如何实现一个带有多个参数的代理方法:
首先,创建一个协议文件(例如:MyDelegate.h)来定义代理方法:
#import <Foundation/Foundation.h>
@protocol MyDelegate <NSObject>
- (void)didSomethingWithParam1:(NSString *)param1 param2:(NSInteger)param2;
@end
然后,在需要使用代理的类中,声明一个代理属性并调用代理方法:
#import "MyDelegate.h"
@interface MyClass : NSObject
@property (nonatomic, weak) id<MyDelegate> delegate;
- (void)doSomething;
@end
@implementation MyClass
- (void)doSomething {
// 执行某些操作
// 调用代理方法
if ([self.delegate respondsToSelector:@selector(didSomethingWithParam1:param2:)]) {
[self.delegate didSomethingWithParam1:'Hello' param2:123];
}
}
@end
最后,在使用该类的地方,实现代理方法并设置代理对象:
#import "MyClass.h"
@interface ViewController () <MyDelegate>
@property (nonatomic, strong) MyClass *myClass;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.myClass = [[MyClass alloc] init];
self.myClass.delegate = self;
[self.myClass doSomething];
}
- (void)didSomethingWithParam1:(NSString *)param1 param2:(NSInteger)param2 {
NSLog('Param1: %@, Param2: %ld', param1, (long)param2);
}
@end
在上面的代码中,MyClass 是一个具有代理功能的类,它在 doSomething 方法中执行一些操作,并通过调用代理方法将结果返回给代理对象。在 ViewController 中,实现了 MyDelegate 协议,并将 self 设置为 myClass 的代理对象。当 myClass 执行 doSomething 方法时,会调用代理方法 didSomethingWithParam1:param2:,并将参数传递给代理对象。
这样,当 MyClass 执行完操作后,ViewController 就能够接收到代理方法的调用,并处理传递的参数。
原文地址: https://www.cveoy.top/t/topic/phEY 著作权归作者所有。请勿转载和采集!