关于iOS开发中的delegate
2015-12-10 00:02
519 查看
有A、B两个对象,A要完成某件事,想让B帮它做。
这时候,A中就要实例化一个B的对象b,A还要在头文件中声明协议,然后在B中实现协议中对应的方法。
这时候再把A的delegate设置为b,在需要的地方,就可以调用B来完成任务了。
推荐深度阅读文章
这时候,A中就要实例化一个B的对象b,A还要在头文件中声明协议,然后在B中实现协议中对应的方法。
这时候再把A的delegate设置为b,在需要的地方,就可以调用B来完成任务了。
// main.m #import <Foundation/Foundation.h> #import "A.h" #import "B.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... A *a = [[A alloc] init]; B *b = [[B alloc] init]; a.delegate = b; [a doSomething]; } return 0; } // A.h #import <Foundation/Foundation.h> #import "CertainDelegate.h" @interface A : NSObject @property (weak,nonatomic) id<CertainDelegate> delegate; - (void)doSomething; @end // A.m #import "A.h" #import "B.h" @interface A () @end @implementation A - (void)doSomething{ [_delegate requiredFunc]; } @end // B.h #import <Foundation/Foundation.h> #import "CertainDelegate.h" @interface B : NSObject<CertainDelegate> @end // B.m #import "B.h" @interface B () @end @implementation B -(void)requiredFunc{ NSLog(@"requiredFunc is running."); } @end // CertainDelegate.h #import <Foundation/Foundation.h> @protocol CertainDelegate <NSObject> - (void)requiredFunc; @end
推荐深度阅读文章
相关文章推荐
- BIOS和CMOS的区别
- Ios转场动画,type动画类型,跳转控制器动画
- ios软件开发在中国的前景
- iOS麦克风权限
- iOS开发——定制圆形头像与照相机图库的使用
- IOS开发基础知识--碎片29
- 蓝懿ios 技术交流和心得分享 12.9
- 【iOS】the executable was signed with invalid entitlements
- 【iOS】copy 关键字
- IOS 3种内省方法
- iOS动效-利用CATransform3D实现翻页动画效果
- [学习小结]developing iOS7 for iPhone and iPad 1~5
- iOS plist文件的编辑、XML文件的换行回车等操作
- iOS应用上传 itunesconnect 错误iTunes Store operation failed.解决
- Firemonkey实现iOS程序运行时更改锁定显示方向(LockOrientations)
- tableView的重用机制
- iOS 推送 通知 测试
- iOS布局和屏幕适配
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制