美文网首页工作生活
iOS学习笔记-block、代理、通知

iOS学习笔记-block、代理、通知

作者: Mr_Ten | 来源:发表于2019-07-04 11:05 被阅读0次
1.block

功能:一对一消息传递,是一个对象。
优点:代码可读性好,可直接在一个对象中实现;是一种轻量级回调,可以直接访问上下文,代码是内联的,运行效率更高;使用起来灵活。
缺点:运行成本高,block出栈需要将使用的数据从栈内存拷贝到堆内存;容易造成循环引用。

block分类

1.1.全局静态block,不会访问任何外部变量,执行完就销毁
 ^{
        NSLog(@"Hello World!");
    }();
1.2.保存在栈中的block,当函数返回时会被销毁,和第一种区别就是调用了外部变量
[UIView animateWithDuration:3 animations:^{
  self.view.backgroundColor = [UIColor redColor];
}];
1.3.保存在堆中的block,当引用计数为0时会被销毁。

例如按钮的点击事件,一直存在,即使执行过,也不会被销毁,因为按钮有可能还会被点击,知道持有按钮的View被销毁,它才会被销毁

- (IBAction)buttonClick:(id)sender {
    if (self.buttonClickBlcok) {
        self.buttonClickBlcok();
    }
}
2.代理

功能:一对一消息传递,是一种设计模式。
优点:运行成本低,只保存了一个对象指针,直接回调,没有额外消耗,不会造成循环引用(week修饰),适用于回调很频繁的情况。
缺点:代码可读性差,使用起来比较麻烦,需要声明协议、声明代理属性、遵守协议、实现协议方法等。

3.通知

功能:多对多消息传递。

相关文章

  • iOS学习笔记-block、代理、通知

    1.block 功能:一对一消息传递,是一个对象。优点:代码可读性好,可直接在一个对象中实现;是一种轻量级回调,可...

  • iOS 代理,通知,Block

    1. 三者的传值对应关系 通知是”一对多”的关系。 通知不能再进程间进行。 代理和Block通常是”一对一”的关系...

  • iOS开发基础:消息传递机制的不同与缺陷

    iOS中的消息传递机制有以下几种: 代理(Delegation) 通知(NSNotification) BLOCK...

  • 通知、代理、block

    通知、代理、block 是iOS中的三大回调方式。 通知 NSNotificationCenter,它就像一个广播...

  • 通知、代理、block

    通知、代理、block 是iOS中的三大回调方式。 通知 NSNotificationCenter,它就像一个广播...

  • React-Native 与原生代码之间的事件传递

    熟悉 iOS 的同学都知道,controller 之间的事件传递有多种: 代理 block 通知 KVO 那么 R...

  • iOS 逆向传值

    代理(delegate)、通知(NSNotification),block等等。 1、委托代理delegate只能...

  • 代理/通知/block

    一:通知(NSNotification) 1.通知的发布 2.通知的监听 3.通知的移除 通知的监听需要在发布之前...

  • 代理,通知,Block

    1.三者的传值对应关系。 我们说通知是”一对多”的关系。 而代理和Block通常是”一对一”的关系。 Block的...

  • 通知,Block,代理

    OC中经常要用到一些事件和参数的传递,通常有三种做法:通知 代理 Block 通知可以一对多,代理 通知 Blo...

网友评论

    本文标题:iOS学习笔记-block、代理、通知

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