美文网首页
学习日记20170105

学习日记20170105

作者: LX2014 | 来源:发表于2017-01-05 10:43 被阅读13次

1,block:传递是copy

通过协议传递一个回调的completeBlock,实现双向代理.如果协议是多级的,block被多层传递,则可能会多次调用回调的block。解决的办法是在最初传出去的地方调用过过后就置为nil,但是这里要把传递的block定义为一个变量,注意:block的传递是copy的,即使将最初的block置为nil,外部传出的block也能够回调回来,在回调时要判断block是否存在。最初传递点击事件的view的点击事件如下:

- (IBAction)minusClick:(id)sender {

if (self.delegate && [self.delegate respondsToSelector:@selector(addMinusView:clickType:complete:)]) {

__block void(^block)(BOOL result) = ^(BOOL result) {

if (block) { //即使block置为空,外部传递的block是copy,外部也是可以回调回来,故做判断

    if (self.number) {

        self.number = self.number - 1;

    }

    block = nil;

    }

};

[self.delegate addMinusView:self clickType:(OKCommonAddMinusClickTypeLeft) complete:block];

}

}

2,事件传递太多时,可以用NSResponder的事件链来找到对应要处理事件的view或控制器。然后用performSelector处理事件.

/**

获取当前视图的父视图控制器

@return 控制器

*/

- (UIViewController *)superViewController

{

UIResponder *rsp = self;

while (![rsp isKindOfClass:[UIViewController class]]) {

rsp = rsp.nextResponder;

}

return (UIViewController *)rsp;

}

相关文章

  • 学习日记20170105

    1,block:传递是copy 通过协议传递一个回调的completeBlock,实现双向代理.如果协议是多级的,...

  • DAY13 READ《Principles》

    20170105

  • 20170105童磊感恩日记【《如何让孩子爱上学习》微课组织有感

    20170105童磊感恩日记【《如何让孩子爱上学习》微课组织有感】 今天我为老婆的发心和努力点赞,从昨晚开始一个人...

  • 「20170105」 学习笔记

    运用到北京公差的一天,在高铁上学习了「财商课」一节,「声音课」一节,「时间管理」80%,「手绘课」一节。 「财商课...

  • 20170105

    今天是腊八节,在这样一个传统节日里,似乎我们应该是一家人其乐融融的坐在餐桌前,喝一碗热气腾腾的八宝粥祈求来年的好...

  • 20170105

    似乎没有什么比今天更让人捉狂的,我好像迎来了人生的一个跌谷。找不到生活的意义,找不到努力的方向,每天似乎行尸走肉,...

  • 20170105

  • 20170105

    今天没时间读书了,简单的看了几页,在简书上看了一篇文章,发现了一本好书要认真看看,《王者速读法》很不错,很有意思的...

  • 20170105

    最近几天的朋友圈被雾霾霸屏,无力的吐槽终究被淹没,吸霾吸到跨年,吐槽吐了一个冬天,还不是不停吸。看成是大自然的惩罚...

  • 20170105

    何让自己觉得有用,“自知之明”很重要,明白自己的长处及缺失,若本身条件不够,则要虚心接受别人的教育才会进步,把自己...

网友评论

      本文标题:学习日记20170105

      本文链接:https://www.haomeiwen.com/subject/zotzvttx.html