ios 自定义delegate(一)

在自定义协议的头文件 .h中

@protocol NSDelegate <NSObject>
@optional  //可选

- (void)OnOption:(NSString *)pStr;

@required //必须
- (void)OnRequired:(NSString *)pStr;
@end

 

@interface NSClass :NSObject

id<BSDelegate> delegate;

@end

 

@property(assian) id<BSDelegate> delegate;

 

在自定义协议的实现文件.m中

@synthesize delegate;

 在制定协议实现文件中调用协议

 

如果委托方法是可实现的,可以在调用委托方法的用respondsToSelector来判断是否已经实现了委托方法。

例如:

[delegate respondsToSelector@selector(OnOption:)]

然后调用。

如果是必须实现的则直接调用:

[delegate OnRequired:@"test"]

 

其它类中声明和使用协议

@interface UIMyView : UIViewController<BSDelegate>

      NSClass *m_pClass;

@end

 

UIMyView 的.m文件中制定委托并实现相关委托方法

m_pClass.delegate = self;

再实现委托方法:

- (void)OnOption:(NSString *)pStr

{
}

 

- (void)OnRequire:(NSString *)pStr

{
}

posted @ 2014-02-19 09:01  yulang  阅读(954)  评论(0)    收藏  举报