在.h中
@protocol MyDelegate <NSObject>
@optional //可选的标识,如果是必须调用的方法则为:@required
- (void)OnClick:(NSString *)pStr;
@end
@interface NSClass
id<MyDelegate> m_pDelegate;
@end
@property(assian) id<MyDelegate> m_pDelegate;
然后在.m中
@synthesize m_pDelegate;
使用:
@interface UIMyView : UIViewController<MyDelegate>
NSClass *m_pClass;
@end
m_pClass.m_pDelegate = self;
再实现委托方法:
- (void)OnClick:(NSString *)pStr
{
}
如果委托方法是可实现的,可以在调用委托方法的用respondsToSelector来判断是否已经实现了委托方法。例如:
m_pDelegate respondsToSelector@selector(OnClick:)