用oc写一个代理方法
时间: 2023-02-21 21:40:52 浏览: 156
好的,下面是在 Objective-C 中实现代理方法的一个示例。
首先,需要定义代理协议,协议中声明了代理对象需要实现的方法。
```
@protocol MyDelegate <NSObject>
- (void)doSomething;
@end
```
然后,在需要使用代理的类中,声明一个代理属性。
```
@interface MyClass : NSObject
@property (weak, nonatomic) id<MyDelegate> delegate;
@end
```
在实现中,可以通过判断代理对象是否实现了代理协议中的方法,从而调用代理方法。
```
@implementation MyClass
- (void)doSomething {
if ([self.delegate respondsToSelector:@selector(doSomething)]) {
[self.delegate doSomething];
}
}
@end
```
最后,代理对象实现了代理协议,并被赋值给需要使用代理的类的代理属性。
```
@interface MyDelegateClass : NSObject <MyDelegate>
@end
@implementation MyDelegateClass
- (void)doSomething {
NSLog(@"Delegate method is called.");
}
@end
```
```
MyClass *myClass = [[MyClass alloc] init];
MyDelegateClass *myDelegate = [[MyDelegateClass alloc] init];
myClass.delegate = myDelegate;
[myClass doSomething];
```
这是一个简单的代理方法的实现示例。希望这能帮到你!
阅读全文