block学习笔记

🌏🌏🌏🌏🌏Block基本使用
screenshot.png
     block最基本的使用方式,创建 — 调用.
     这里的block类型:void(^)()  —> 无返回值 无参数
 
screenshot.png
     三种创建block的方式,最常用的是方式三.
      inlineBlock:快速生成block代码.
    block作用:保存一段代码,并不是马上执行,需要手动调用
 
👉Block使用场景(简单阐述)
screenshot.png
     定义cellItem模型,声明一个block属性
 
     实现快速生成模型类方法
 
screenshot.png
     在目标控制器取出模型并初始化数据
 
screenshot.png
     当点击cell时,执行block中的代码
 
👉⭐️⭐️⭐️Block传值
     代理,block都可以用来传值.
     
     在viewController控制器中,点击屏幕时会触发该方法,此时使用的是block方法来包装代码传值,
     不过,此时的block中并没有值,执行下一句,modal出控制器modalVc
 
     在modal控制器中,点击事件触发,将block传给代理控制器,实现传值(逆传)
 
 
👉⭐️Block内存管理[面试]
    1⃣️. 内存管理[MRC]
     2⃣️. 内存管理[ARC]
 
👉⭐️Block循环引用
     1⃣️.简单演示
     运行结果:打印为null,因为是弱引用,控制器会被销毁.
 
      2⃣️.复杂演示
 
 
👉Block变量传递
        如果block访问外部局部变量没有被任何关键字修饰,都是值传递
    block访问外部变量被__block,static修饰,指针传递
       访问的全局变量,也是指针传递
 
👉Block开发使用场景
    Block开发使用场景(参数使用):
         什么时候使用Block充当参数?
                思想:封装一个功能,这个功能做什么事情由外界决定,
                       但是什么时候调用由内部决定,这时候就需要把Block充当参数去使用.
 
         怎么去把block充当参数?实战
                      比如:封装一个计算器,怎么计算由外界决定,什么时候计算由内部决定
 
✈️编程思想:
       链式编程思想:把方法调用通过点语法链接,可读性非常好
    // 实战:能看懂
    // 实战:封装一个计算器,提供一个加法方法
 
     返回一个block
posted @ 2016-01-18 01:59  coyoko  阅读(136)  评论(0)    收藏  举报