永发信息网

在ios 中,代理的方法怎么实现

答案:1  悬赏:0  手机版
解决时间 2021-02-23 05:58
在ios 中,代理的方法怎么实现
最佳答案
委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理要做的事。反映到程序中,首先要明确一个对象的委托方是哪个对象,委托所做的内容是什么。
A的头文件:

[objc] view plain copy
#import

@protocol SecretGardenPicPopViewDelegate

@optional

- (void)timeTickOut:(BOOL)backToSecret;

@end

@interface SecretGardenPicPopView : UIView
{
id _delegate;
}

@property (nonatomic, assign) id delegate;

@end

A的 .m 文件

[objc] view plain copy
#import "SecretGardenPicPopView.h"
#import "AppDelegate.h"

@implementation SecretGardenPicPopView

@synthesize delegate = _delegate;

- (void)dealloc
{
self.delegate = nil;
[super dealloc];
}

- (void)changeTimeTextLabel:(NSTimer *)timer
{
NSLog(@"===计数===>%d",_timeCount);
if (0 <= _timeCount) {
_timeLab.text = [NSString stringWithFormat:@"%d''", _timeCount];
} else {
[timer invalidate];
NSLog(@"代理===>%p",_delegate);
if (_delegate && [_delegate respondsToSelector:@selector(timeTickOut:)]) { //只有当代理存在,且timeTickOut方法被实现的时候才执行下面的语句
NSLog(@"执行代理");
[_delegate timeTickOut:NO];
}
}
_timeCount -= 1;
}

@end

B的头文件:

[objc] view plain copy
#import "SecretGardenPicPopView.h" //A的头文件

@interface SecretGardenController : BaseController //A的代理

@end

B的 .m文件:

[objc] view plain copy
- (void)timeTickOut:(BOOL)backToSecret
{
//Do Something
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国烟草(景泰气象北)怎么去啊,有知道地址的
英语谜题 What is the longest sentence in t
6篇小学生400字左右的日记
兰溪庭苑停车场在什么地方啊,我要过去处理事
神仙丈夫txt全集下载
社会人员如何考取研究生?我同事已经30多了,
如何提升企业安全管理 研究课题
长期股权投资权益法核算,调整净利润时,需要
朴里服务区怎么去啊,有知道地址的么
网络模式中的UMTS是什么意思?
张家土财主我想知道这个在什么地方
英语考研。厦大和广外哪个好考?
为什么眼部护理做完之后皱纹会越来越深
以下哪一项是初生演替的例子BA. 藓—地衣—草
金都杭城东区怎么样?好不好?值不值得买?
推荐资讯
想利用电脑电源给12V功放供电,这样就可以开
iPhone6钢化膜怎么贴 iPhone6贴膜不求人
三星电视更新smart Hub要多久
自制幕布用什么材料好
团坡山地址在哪,我要去那里办事
武汉科技大学城市学院附近租房
柚木是一种什么样的木材?
3861香港国际母婴会所这个地址在什么地方,我
【506焊条】请问焊接铸钢应使用白钢焊条还是5
已知a是√16的平方根,b=√9 ,c是-8的立方根,
肝硬化门脉高压诊断最具有特征意义的表现是A.
有哪些学校考研有工程管理专业的(学术硕士)
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?